Skip to main content
 首页 » 编程设计

Python 条件不起作用,其中包括 ifelse 子句

2025年05月04日15unruledboy

我在 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')