Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:';布尔';即使使用另一个变量,对象也不可iterable_Python_Python 3.x - Fatal编程技术网

Python 类型错误:';布尔';即使使用另一个变量,对象也不可iterable

Python 类型错误:';布尔';即使使用另一个变量,对象也不可iterable,python,python-3.x,Python,Python 3.x,有史以来的第一篇帖子:) 我知道if语句返回一个布尔值。但我不是用它来迭代列表,我用的是x。我只想将所有其他变量(type=IntVar)设置为0,但I必须保持为1。提前谢谢,我第一次来这里 def clear(): variables=[var, var0, var1, var2, var3, var4,var5,var6, var7, var8] for i in variables: if i.get() == 1: x = vari

有史以来的第一篇帖子:) 我知道if语句返回一个布尔值。但我不是用它来迭代列表,我用的是x。我只想将所有其他变量(type=IntVar)设置为0,但I必须保持为1。提前谢谢,我第一次来这里

def clear():
    variables=[var, var0, var1, var2, var3, var4,var5,var6, var7, var8]
    for i in variables:
        if i.get() == 1:
            x = variables.index(i)
            for y in variables in range(0,x-1) and range(x,9):
                y.set(0)
我的原始代码有500行,所以在这里完整发布并不理想。 完全回溯:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Thomas Jence\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "G:\Mrs. Odewale\Computing coursework\options.py", line 187, in clear9
    for y in variables in range(0,x-1) and range(x,9):
TypeError: 'bool' object is not iterable

不熟悉python,但作为一种标准的编码实践,在迭代数组时,您永远不希望更改数组中的值

而是创建一个与现有数组具有相同值的新数组。在设置新数组的值时迭代旧数组,然后在循环结束后,将您的数组设置为新数组的新值

for y in variables in range(0,x-1) and range(x,9):
解释为(用括号分开并按行排列,以明确分组):

然后,最里面的括号确定
范围(0,x-1)
是否为空,如果为空则使用它,如果为空则使用
范围(x,9)
。然后,下一层测试
变量
是否在“获胜”
范围内
。然后你有效地做到:

for y in False:
因为
变量
是一个
列表
,所以它肯定不在任何
范围内


我不知道您想做什么,但您需要重新考虑这一行。

您必须格式化代码。没人能读懂你写的东西。对不起,我现在才学会怎么读。。我的错…不知道这是什么语言,但是var,var0,var1都没有定义吗?如果是这样的话,我不希望您对它们执行I.get()。我们不需要查看所有代码。相反,您需要创建重现此问题的。您的问题来自于范围(0,x-1)和范围(x,9)中变量y的这一行
。那是什么?
for y in False: