Python多not与or组合逻辑错误求助(剪刀石头布程序)
解决剪刀石头布输入验证的逻辑错误
你原来的代码逻辑问题出在运算符优先级和逻辑组合上:not的优先级比or高,所以你的条件实际等价于 (not b=="schere") or b=="stein" or b=="papier"——只要输入是stein或papier,后面的or条件就会成立,导致整个表达式为真,错误触发提示。
下面是两种正确的写法:
写法一:修正逻辑括号
用括号把所有有效输入的判断括起来,再整体取反,确保只有当输入不在有效列表中时才触发错误:
elif not (b == "schere" or b == "stein" or b == "papier"): print("Zu dumm zum tippen!?")
写法二:更简洁的Python风格
用in运算符直接判断输入是否在有效词汇集合中,逻辑更清晰,代码更简洁:
elif b not in {"schere", "stein", "papier"}: print("Zu dumm zum tippen!?")
内容的提问来源于stack exchange,提问作者Thanach
相关产品推荐
相关产品推荐

