deku_desu 发表于 2019-3-21 18:06:01

关于py的if语句的条件判断

temp=int(input())
if temp == 3 or 8 or 10
   print(“YES”)
else:
   print(“NO”)

我写的就是这个代码
其实思路很简单
就是如果输入的数字是3,8,10其中一个 那么输出YES,否则就是NO
但是我实际操作的时候发现输入2输入3答案都是YES??然后我把3 or8 or10的or改成and,就可以了。这是什么情况啊求解!!

jackz007 发表于 2019-3-21 18:18:57

本帖最后由 jackz007 于 2019-3-21 18:26 编辑

      楼主写错了,逻辑表达式不能达到预期的效果,如果不信你就输入除 3、8、10 以外的任何数试试看。
if temp == 3 or 8 or 10:
      应该这样写:
if temp == 3 or temp == 8 or temp == 10:
      错误的原因是,== 运算符优先级高于逻辑运算符 or,于是,即使 temp == 3 为 False,那么, False or 8 or 10 的结果将是 True,也就是说,无论 temp 的值是多少,逻辑表达式 temp == 3 or 8 or 10 的结果将永远是 True。

水瓶座 发表于 2019-3-21 20:34:18

temp == 3 or 8 or 10
temp == 3,8,10,只要有一个为True 则返回True
由于非零的数字都是True,所以temp == 3 or 8 or 10永远都只会返回True

yucsam 发表于 2019-3-22 15:04:36

我发现了()和()
的区别"" “"
(“”)你确定这样是可以运行的吗?{:10_266:}
页: [1]
查看完整版本: 关于py的if语句的条件判断