使用"或"或"或 - " Python 3.6的语句

时间:2017-03-05 19:59:29

标签: python python-3.x

在修修补补的同时,我发现了我的上一个/当前问题的问题: 使用时:

saveKey = gwdzd10q
saveKeyp = False

while [saveKeyp == True,str(saveKey(2)) == 'k']:

我明白了:

while [saveKeyp == True,str(saveKey(2)) == 'k']:
TypeError: 'str' object is not callable`

为什么会这样,我该如何解决?是因为我试图做一个或声明的方式?或者是什么?

不要介意该部分str(saveKey(2)) == 'k'],因为我稍后会检查其他几个键,包括" d"

2 个答案:

答案 0 :(得分:2)

我认为是

saveKey = gwdzd10q
你的意思是

saveKey = "gwdzd10q"

如果是这样,该字符串的第三个字符将是saveKey[2]而不是saveKey(2)。这已经是一个字符串,因此通过str()运行它是毫无意义的。

您似乎试图表达的条件是

saveKeyp or saveKey[2] == 'k'

由于saveKeyp是布尔值,因此使用saveKeyp == True是多余的。

如果你想要一个由此控制的while循环,它将是:

while saveKeyp or saveKey[2] == 'k':

但是在这种情况下,循环的主体需要修改saveKeypsaveKey,否则你将有一个无限循环。

答案 1 :(得分:1)

首先,您需要使用数组语法来获取saveKey的字符:

while [saveKeyp == True,str(saveKey[2]) == 'k']:

其次,非空列表的计算结果为布尔值True。所以你在这里建立了一个无限循环。

>>> bool([False, False])
True
>>> bool([False])
True
>>> bool([])
False
>>>