我试图创建一个函数,在其他两个值(startFrom和stopAt)之间生成一组值(numbersToChoose),但由于某种原因,迭代器(?)在第二个for循环(第7行)中,在本例中,a似乎是随机生成的,尽管我看不出任何原因。你知道吗
def chooseRandomNumbers(numbersToChoose, startFrom, stopAt):
numbers = [(randrange(startFrom, stopAt))] # initialize empty list of numbers
for n in range(numbersToChoose-1): # choose random number from 1 to 49 a total of 7 times
x = randrange(startFrom, stopAt+1)
for a in numbers: # check for already existing elements in "numbers"
if x == numbers[a]: # if new random number already exists in "numbers" discard and run loop again
n -= 1 # decreases n by 1 so a new (hopefully not already existing) number can be generated
else: # generated numbers does not exist in "numbers" yet
numbers.append(x) # appends randomly chosen number to list "numbers"
return numbers # returns said list "numbers"
任何关于如何处理这一问题的建议都将不胜感激。 如果可能的话,请告诉我代码中还有什么不好的地方(刚刚开始的python)。你知道吗
检查生成的号码是否已经在列表中的代码是错误的。
for a in numbers
,在这个循环中,您使用的是numbers[a]
,而a
是list的成员,而不是成员的索引。 使用in
测试列表中是否有数字:从随机导入范围
或者简单地说:
相关问题 更多 >
编程相关推荐