我在使用回车在python中实现一个简单的倒计时时遇到了麻烦.我有两个版本,每个版本都有问题.
打印版本:
for i in range(10):
print "\rCountdown: %d" % i
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
问题:\r没有做任何事情,因为最后打印了换行符,因此它给出了输出:
Countdown: 0
Countdown: 1
Countdown: 2
Countdown: 3
Countdown: 4
Countdown: 5
Countdown: 6
Countdown: 7
Countdown: 8
Countdown: 9
Run Code Online (Sandbox Code Playgroud)
Sys.stdout.write版本:
for i in range(10):
sys.stdout.write("\rCountdown: %d" % i)
time.sleep(1)
print "\n"
Run Code Online (Sandbox Code Playgroud)
问题:所有的睡眠都发生在开始时,睡眠10秒后它就会打印Countdown: 9到屏幕上.我可以看到\r它正在幕后工作,但是如何让印刷品穿插在睡眠中呢?
所以我正在做的是创建一个使用string.digits+ string.ascii_letters+ 的94char密钥string.punctuation
我用它来生成密钥(从这个站点抓住谢谢:))
def key_pass(size=94, chars=string.digits + string.ascii_letters + string.punctuation):
return ''.join(random.choice(chars) for x in range(size))
Run Code Online (Sandbox Code Playgroud)
这创造了这样的东西
9bMMqy-lB6Mt},bOxr@1ljey_\Z\gk`xRJBP;3YFR*i<N<!MB}_|0p3f5Q"l8'xEj)WHYGk7O]vQZ1cZ'(diMKS*gW%u$
我真正想要做的是随机组织charsvar中的94个字符.所以我不能有任何重复的东西我似乎无法正确的方法来实现一个检查变量的if语句
有什么建议?