首页 > 解决方案 > 对于带有 raw_input 的循环,If 语句应将输入增加 1

问题描述

大家!我目前正在学习 Python(没有先前的编码技能 - 至少不足以提及它们)并且我正在努力解决我们应该为家庭作业做的彩票机中的 for 循环。在过去的两个小时里,我一直在谷歌上搜索这个,但我找不到任何可以暗示我朝着正确方向前进的东西。

我希望循环创建一个带有随机数的列表。打印给用户的随机数数量应由用户输入定义,并且不应使用重复项。每次创建副本时,它应该简单地选择一个不同的数字。关于我在这里搞砸的任何提示?(请注意它是 Python 2.x)

谢谢你们!:)

代码:

from random import randint

lotterylist = []

print "Welcome to the lottery machine!"

mynumbers =  int(raw_input("How many numbers should be drawn?\n"))

for i in range(0, mynumbers):

    lottery_numbers = randint(0, 48)

    if lottery_numbers not in lotterylist:
        lotterylist.append(lottery_numbers)

    else:
        mynumbers += 1
        continue

print lotterylist

print "End"

标签: pythonfor-loopif-statementrandom

解决方案


您可以这样做,因为老实说,当前的代码没有多大意义。

for _ in range(0, num):
  snum = randint(0, 48)
  while snum in numlist:
    snum = randint(0, 48)
  numlist.append(snum)

这将继续创建一个新数字,直到选择不在列表中的数字,然后退出 while 循环并将该数字附加到生成的数字列表中。无需不断增加范围;展望未来,您应该明白,如果您的逻辑需要类似的东西,那么这意味着它有缺陷。您当前的方法没有意义。


推荐阅读