2024-05-08 21:41:59 发布
网友
我有这样的代码:
if (X or Y) == ("Cat" or "Dog" or "Fish" or "Bird"): print X, Y
它只有在X == "Cat"时才有效。有人知道我的错误吗?在
X == "Cat"
Python中的or运算符如果是"trucy",则返回第一个参数,否则返回第二个参数。只要X为“trucy”,则比较的右侧始终求值为"Cat",而左侧的求值结果为X。在
or
X
"Cat"
最简洁的方法来获得你想要的逻辑是
if set((X, Y)) & set(("Cat", "Dog", "Fish", "Bird")): # whatever
结果是你在计算X or Y,只给你X。然后,计算出Cat or Dog or..,只给你Cat,因为它不是0。在
X or Y
Cat or Dog or..
Cat
你想要的是:
if X in ("Cat","Dog", "Fish", "Bird") or Y in ("Cat","Dog", "Fish", "Bird"): #taa daa!
我想你这样想:
animals = ["Cat", "Dog", "Fish", "Bird"] if X in animals or Y in animals: print X, Y
在您的代码中,表达式(“Cat”或“Dog”或“Fish”或“Bird”)被视为逻辑表达式,我确信您不希望这样做。碰巧这个表达式的计算结果是“猫”,这解释了你观察到的行为。在
这些是字符串上的逻辑操作。非空字符串被视为真值。空字符串被认为是错误的。Python的逻辑运算符返回与操作数类型相同的值(假设两个操作数的类型相同)。短路评估解释了or和{}的行为。在
在任何情况下,对字符串执行逻辑操作是没有意义的!在
Python中的
or
运算符如果是"trucy",则返回第一个参数,否则返回第二个参数。只要X
为“trucy”,则比较的右侧始终求值为"Cat"
,而左侧的求值结果为X
。在最简洁的方法来获得你想要的逻辑是
结果是你在计算
X or Y
,只给你X
。然后,计算出Cat or Dog or..
,只给你Cat
,因为它不是0。在你想要的是:
我想你这样想:
在您的代码中,表达式(“Cat”或“Dog”或“Fish”或“Bird”)被视为逻辑表达式,我确信您不希望这样做。碰巧这个表达式的计算结果是“猫”,这解释了你观察到的行为。在
^{pr2}$
这些是字符串上的逻辑操作。非空字符串被视为真值。空字符串被认为是错误的。Python的逻辑运算符返回与操作数类型相同的值(假设两个操作数的类型相同)。短路评估解释了}的行为。在
or
和{在任何情况下,对字符串执行逻辑操作是没有意义的!在
相关问题 更多 >
编程相关推荐