我想创建一个代码,该代码将生成许多随机字符串(在这种情况下,例如为10)。我使用了下面的代码,但是代码不断生成相同的字符串
输入代码
import random
import string
s = string.ascii_lowercase
c = ''.join(random.choice(s) for i in range(8))
for x in range (0,10):
print(c)
输出
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
press any key to continue .....
请帮助
答案 0 :(得分:5)
您现在要做的是生成一个随机字符串c
,然后打印10次
您应该代之以将生成内容放入循环中,以每次生成一个新字符串。
import random
import string
s = string.ascii_lowercase
for i in range(10):
c = ''.join(random.choice(s) for i in range(8))
print(c)
答案 1 :(得分:1)
尝试以下方法以达到所需的结果
import random
import string
s = string.ascii_lowercase
for x in range (0,10):
print(''.join(random.choice(s) for i in range(8)))
答案 2 :(得分:1)
从Python 3.6开始,您可以使用random.choices
(请参见this answer)。示例:
import random
import string
sample = "".join(random.choices(string.ascii_lowercase, k=10))
print(sample)
答案 3 :(得分:1)
如上所述,您需要在循环中放入random.choice
,我想指出的是,您可以使用下划线(_
),这意味着我不在乎该变量与for
一起表示,在这种情况下,其含义是:
import random
import string
s = string.ascii_lowercase
for _ in range(10):
c = ''.join(random.choice(s) for _ in range(8))
print(c)
我不想让您有义务这样做,但是请注意Python语言中存在这样的约定。
答案 4 :(得分:1)
这将为您提供随机字符串,包括数字,大写和小写字母。
import string, random
random_string=''
for x in range(8):
if random.choice([1,2]) == 1:
random_string += random_string.join(random.choice(string.ascii_letters))
else:
random_string += random_string.join(random.choice(string.digits))
print(random_string)