我正在尝试编写一个程序,该程序将创建一个随机生成的八个字符的密钥(ASCII字符)。到目前为止,我已经能够获得 8 个不同的数字,然后将它们转换为等效的 ASCII 字符:
> import random
> for i in range(0,8):
> key = random.randint(33,126)
> key = chr(key)
> print(key)
但是当我运行它打印的程序时(输出至少总是不同的):
> ~
> e
> E
> v
> k
> `
> (
> X
理想情况下,我希望它打印(中间没有空格):
> ~eEvk`(X
但是我已经尝试了很多方法(包括格式)将其放入字符串中,但没有任何效果!很抱歉这个冗长的问题,但我希望它是有意义的。尽快回答将不胜感激。谢谢!
按照您所做的操作,您可以将其添加到列表中,然后在循环结束时打印列表
import random
l = []
for i in range(0,8):
key = random.randint(33,126)
key = chr(key)
l.append(key)
print("".join(l))
您有几个选项来处理这个问题。
首先,如果你想print()
每个字符,但又不想要换行符,你可以告诉它保持输出在同一行上,如下所示:
import random
for i in range(0,8):
key = random.randint(33,126)
key = chr(key)
print(key, end='')
另一种选择是从空字符串s = ''
开始,并在制作时将每个键添加到其中,然后在末尾打印整个字符串:
import random
s = ''
for i in range(0,8):
key = random.randint(33,126)
s += chr(key)
print(s)
你可以做这样的事情:
import random
print("".join(chr(random.randint(33,126)) for _ in range(8)))
或者使用字符串模块:
import random
import string
print("".join(random.choice(string.printable) for _ in range(8)))