我是python的新手,无法弄清楚为什么我的代码会抛出这个错误。我正在尝试使用c来比较两个列表。
def playPowerball():
powerball = []
choices = []
c = []
while len(powerball) < 6:
number = random.randint(1,64)
if number not in powerball:
powerball.append(number)
while len(choices) < 6:
pick = int(raw_input('Pick a number between 1 and 64: '))
if pick not in choices:
choices.append(pick)
for i in powerball:
for i in choices:
c += 1
print ('You have',c,'correct',powerball,choices)
错误:
U:\Python\Lottery Ticket.py in playPowerball()
15 choices.append(pick)
16 for i in powerball:
---> 17 if i in choices:
18 c += 1
19 print ('You have',c,'correct',powerball,choices)
TypeError: argument of type 'int' is not iterable
编辑:我的意思是选择而不是选择,但代码仍然不起作用。
编辑2:谢谢你,sKwa,解决了我的问题!
答案 0 :(得分:0)
错误很明显:pick是一个int。语法for i in *someInt*
在python中不是有效的语法。
因为你写了这一行:
pick = int(raw_input('Pick a number between 1 and 64: '))
然后,您使用.... in pick
。
想象一下,选择值是5
。
for i in 5
或if i in 5
实际应该做什么?
答案 1 :(得分:-1)
您正在尝试迭代无效的整数。你的问题在这里: 您已指定选择数据类型“整数”,但尝试迭代它,就像它是一个列表一样。
for i in powerball:
for i in pick:
c += 1
for i in powerball:
---> 17 if i in pick:
18 c += 1
我认为您希望检查所选号码是否在强力球中?
您将第17行更改为:
if pick == i