我在 python 中包含了以下条件,尽管我将 x 设置为 5 并且第一个条件为 False 我仍然收到作为测试 1 的输出
x = 5
if [(( 0 < x <= 1.084) | ((x) == 0))]:
print((( 0 < x <= 1.084) | ((x) == 0)))
print('Test1')
elif [(1.084 < x <= 5)]:
print('Test2')
False
Test1
请您参考如下方法:
问题是你的条件周围有方括号,它将条件的评估(False)放在 Python 列表([False])中.
只要有任何元素,Python 列表就会在 bool 上下文中评估为 true,因此 [False] 是循环的有效 true 条件。
要修复它,只需删除括号,这将使 if 查看 False 而不是列表。
此外,您可能想使用 or 而不是 |,因为前者是 bool 值的常用运算符,而后者是整数按位或。
你也可以去掉很多括号,Python 通常不需要它们。
修改后的代码:
x = 5
if (0 < x <= 1.084) or (x == 0):
print((( 0 < x <= 1.084) | ((x) == 0)))
print('Test1')
elif 1.084 < x <= 5:
print('Test2')
