Mar*_*ins 2 python random django
我遇到了问题,我不知道这是否可行,但我想做的是多次调用一个函数。这个想法是我正在为门票生成一个序列号,我有一个函数可以生成一个长度为 16 的数字:
import random
import string
def random_number_generator(size=16, numbers=string.digits):
return ''.join(random.choice(numbers) for _ in range(size))
Run Code Online (Sandbox Code Playgroud)
现在,如果我像这样运行这个函数print(random_number_generator() * 4),它将返回如下内容:
1234567890987654
1234567890987654
1234567890987654
1234567890987654
Run Code Online (Sandbox Code Playgroud)
如何使它返回不同的数字而不是相同的数字?
您在 print() 中使用 * 4 的方式只是让它从函数中打印相同的结果 4 次。你可以使用 python 中的一些简单的东西作为循环来运行它 x 次:
for k in range(4):
print(random_number_generator())
Run Code Online (Sandbox Code Playgroud)
因为数字范围如此之大,所以不太可能有重复的结果,但您可以使用它来删除重复的结果
output = []
expected_results = []
for k in range(4):
output.append(random_number_generator())
expected_results = list(dict.fromkeys(output))
print(expected_results)
Run Code Online (Sandbox Code Playgroud)