Int对象不可迭代,但是我正在使用范围函数

问题描述 投票:-1回答:3

我正在进行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
python int iterable
3个回答
2
投票

您打算写loss, win = 0, 0loss = win = 0

使用您的代码:

loss, win = 0

Python尝试解压缩右侧的内容,因此尝试对其进行迭代,以便将两个值放入losswin中。但是您那里有一个int,因此无法对其进行迭代。

这将与loss, win = 0, 0一起使用,因为您的右侧有一个长度为2的元组。


0
投票
loss = win = 0

loss, win = 0, 0

loss = 0 
win = 0

-1
投票

Python中没有switch语句,因此整个语法都不正确。

© www.soinside.com 2019 - 2024. All rights reserved.