请问图中的句子能否用 player != 1 or 2 or 3来表达呢,试了一下好像会出bug,那么这句子问题是什么呢
这不是bug,这是逻辑问题吧;player!=1or2or3 ;当player==2时,它判断player!=1时已经满足条件,则不会继续判断后面条件;
and 必须全为真才为真;or只要一个为真就为真
player != 1 or 2 or 3 恒等于True,因为后面两个条件恒为True。如果题主理解为player != (1 or 2 or 3),在逻辑上也是错误的。建议这样写:
>>> player = 5
>>> player not in (1,2,3)
True
>>> player = 3
>>> player not in (1,2,3)
False