简体   繁体   English

如何多次运行一个函数并返回不同的结果python

[英]How to run a function multiple times and return different result python

I'm having a problem and I don't know if this is doable but what I wanted to do is call a function multiple times.我遇到了问题,我不知道这是否可行,但我想做的是多次调用一个函数。 The idea is I am generating a serial number for tickets, I have a function that generates a number which is 16 in length:这个想法是我正在为门票生成一个序列号,我有一个函数可以生成一个长度为 16 的数字:

import random
import string

def random_number_generator(size=16, numbers=string.digits):
    return ''.join(random.choice(numbers) for _ in range(size))

Now if I run this function like this print(random_number_generator() * 4) it will return something like this:现在,如果我像这样运行这个函数print(random_number_generator() * 4)它将返回如下内容:

1234567890987654
1234567890987654
1234567890987654
1234567890987654

How do I make it to return different numbers instead of the same numbers?如何使它返回不同的数字而不是相同的数字?

The way you using * 4 in print() just make it print the same result from the function 4 times.您在 print() 中使用 * 4 的方式只是让它从函数中打印相同的结果 4 次。 You can use something simple from python as a loop to run it x times:你可以使用 python 中的一些简单的东西作为循环来运行它 x 次:

for k in range(4):
   print(random_number_generator())

Because the number range so large there less likely to have repeat results, but you can use this to remove duplicate results因为数字范围如此之大,所以不太可能有重复的结果,但您可以使用它来删除重复的结果

output = []
expected_results = []
for k in range(4):
   output.append(random_number_generator())

expected_results = list(dict.fromkeys(output))

print(expected_results)
for i in range(4):
    print(random_number_generator())

You can just loop through your function and append generated numbers to an empty list.您可以循环遍历您的函数并将生成的数字附加到一个空列表中。

number_of_tickets = 10
ticket_serial_numbers = []
for i in range(number_of_tickets):
    serial_number = random_number_generator()
    ticket_serial_numbers.append(serial_number)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM