我正在进行Monty Hall模拟,当我运行这些代码行时,出现错误消息“ int对象不可迭代”,但是我已经在使用范围函数。然后,后来我在一个更简单的代码上进行了尝试,该代码基本上执行了同样的操作,并且运行顺利。
def run_game(n):
loss, win=0
for i in range(1,n):
switch(True)
if nagrada==odabir_vrata:
win+=1
else:
loss+=1
vjerojatnost_dobitka=100*win/(win+loss)
return vjerojatnost_dobitka
run_game(100)
TypeError Traceback (most recent call last)
<ipython-input-10-829dad26acc9> in <module>
10 return vjerojatnost_dobitka
11
---> 12 run_game(100)
<ipython-input-10-829dad26acc9> in run_game(n)
1 def run_game(n):
----> 2 loss, win=0
3 for i in range(1,n):
4 switch(True)
5 if nagrada==odabir_vrata:
TypeError: 'int' object is not iterable
您打算写loss, win = 0, 0
或loss = win = 0
。
使用您的代码:
loss, win = 0
Python尝试解压缩右侧的内容,因此尝试对其进行迭代,以便将两个值放入loss
和win
中。但是您那里有一个int
,因此无法对其进行迭代。
这将与loss, win = 0, 0
一起使用,因为您的右侧有一个长度为2的元组。
loss = win = 0
或
loss, win = 0, 0
或
loss = 0
win = 0
Python中没有switch语句,因此整个语法都不正确。