生成唯一的随机字符串

时间:2019-05-11 18:17:06

标签: python python-3.x

我想创建一个代码,该代码将生成许多随机字符串(在这种情况下,例如为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 .....

请帮助

5 个答案:

答案 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)