鱼C论坛

 找回密码
 立即注册
查看: 2258|回复: 3

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

[复制链接]
发表于 2019-3-21 18:06:01 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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,就可以了。这是什么情况啊求解!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-22 15:04:36 | 显示全部楼层
我发现了()和()
的区别"" “"
(“”)你确定这样是可以运行的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 19:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表