【发布时间】:2022-01-12 14:30:39
【问题描述】:
以下是我对这个问题的尝试解决方案:通过将 1 到 30 之间的三个数字与以相同顺序抽取的三个随机数字相匹配来赢得彩票中的头奖。当一个球被抽出时,它会在另一个球被抽出之前放回机器中。在抽出一个球之前,机器中总是有 30 个球,玩家可以多次选择同一个球。每周进行一次抽奖。编写一个以三个数字为参数的函数,在 1 到 30 之间抽取三个随机数,并返回赢得大奖所需的周数。 (例如,选择的数字:17、12、25 必须匹配:第 1 球是 17,第 2 球是 12,第 3 球是 25。)
我的尝试:
import random
chosen = []
for i in range(0, 3, 1):
chosen.append(input("Please input your lucky number: "))
drawn_numbers = []
count = 0
week_count = 0
print("Your chosen numbers are: {}, {}, {}".format(chosen[0], chosen[1], chosen[2]))
while count != 3:
for i in range(0, 3, 1):
random_number = random.randint(1, 30)
drawn_numbers.append(random_number)
for i in range(0, 3, 1):
if drawn_numbers[i] in chosen:
count += 1
week_count += 1
drawn_numbers = []
print("It took you {} weeks to win.".format(week_count))
由于某种原因,while 循环只是忽略了count += 1 部分并永远循环随机生成的drawed_numbers 列表。
显然我的循环有问题,但我看不到它 D:
关于如何使该循环工作的一些建议会很好。谢谢。
【问题讨论】:
-
chosen中的值是字符串,不是整数。
标签: python loops random while-loop