关于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: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。 temp == 3 or 8 or 10
temp == 3,8,10,只要有一个为True 则返回True
由于非零的数字都是True,所以temp == 3 or 8 or 10永远都只会返回True 我发现了()和()
的区别"" “"
(“”)你确定这样是可以运行的吗?{:10_266:}
页:
[1]