忽略Python“if”语句

忽略Python“if”语句,python,loops,if-statement,for-loop,logical-operators,Python,Loops,If Statement,For Loop,Logical Operators,可能重复: 我在Python中触发循环内循环,若满足了多个条件之一或。 脚本似乎跳过了if语句,并在不满足所需条件的情况下进入了内部循环 代码 提前谢谢 20在布尔上下文中总是计算为true。因此,macroname_n==15或20总是正确的 你可能想写: if macroname_n == 15 or macroname_n == 20: success_counter = 0 # ... 此行不符合您的要求: if macroname_n == 15 or 20: 分

可能重复:

我在Python中触发循环内循环,若满足了多个条件之一或。 脚本似乎跳过了if语句,并在不满足所需条件的情况下进入了内部循环

代码

提前谢谢

20在布尔上下文中总是计算为true。因此,macroname_n==15或20总是正确的

你可能想写:

if macroname_n == 15 or macroname_n == 20:
    success_counter = 0
    # ...

此行不符合您的要求:

if macroname_n == 15 or 20:
分析如下:

if (macroname_n == 15) or (20):
由于20在布尔上下文中始终为true,因此该语句始终为true。你真正想要的是:

if macroname_n in (15, 20):
应该是:

 if macroname_n == 15 or macroname_n == 20:

否则,它将始终被视为20

或15中的宏名称,20@Paolo,当然可以,但是当只与两个值进行比较时,一个元组真的值得吗?您想说的是,如果macroname\u n在15,20:中,或者如果macroname\u n==15或macroname\u n==20:。
if macroname_n == 15 or 20:
 if macroname_n == 15 or macroname_n == 20: