示例:
>>> x = 10
>>> x = x > 9 and 0 or x
>>> x
10
,同时:
>>> x = 10
>>> x = x > 9 and 1 or x
>>> x
1
显然0被视为布尔值False。如何使用内联比较来分配整数0?
答案 0 :(得分:2)
试试这个:
x = 0 if x > 9 else x
答案 1 :(得分:2)
你可能想要这个
x= 0 if x > 9 else x
这是传统三元运算符在类似语言中的python方式。
您拥有的代码段将始终为x和1提供x或1; 9:
x = x > 9 and 0 or x
这被解释为
x = (x > 9 and 0) or x
x = 0 or x
x = x
另一个版本
x = x > 9 and 1 or x
被解释为
x = (x > 9 and 1) or x
x = 1 or x # or gets short-circuited so second expression is not evaluated
x = 1