我正在尝试编写一个程序,该程序将创建一个随机生成的八字符键(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
但是我已经尝试了很多方法(包括格式化)将它放入一个字符串但没有任何效果! 对于冗长的问题感到抱歉,但我希望这是有道理的。我们非常感谢一个答案。谢谢!
答案 0 :(得分:2)
根据您的工作,您可以将其添加到列表中,然后在循环结束时打印列表
import random
l = []
for i in range(0,8):
key = random.randint(33,126)
key = chr(key)
l.append(key)
print("".join(l))
答案 1 :(得分:1)
您可以这样做:
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)))
答案 2 :(得分:0)
您有两种方法可以解决这个问题。
首先,如果您想要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)