鱼C论坛

 找回密码
 立即注册
查看: 1362|回复: 5

[已解决]or 逻辑判断的问题

[复制链接]
发表于 2017-12-2 17:54:31 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 jle55555 于 2017-12-2 18:31 编辑

请问这两段代段代码中,i or j or k ==10与 i ==10 or j ==10 or k ==10的意思为什么会有不同?后者的意思是'i,j,k三者有一个及以上等于10为真,三者都不为10为假'对吗?那前者的意思是什么呢?
代码1:
  1. i=10
  2. j=10
  3. k=10
  4. while i or j or k ==10:
  5.     print(i,j,k)
  6.     i-=1
  7.     j-=1
  8.     k-=1
复制代码

代码2:
  1. i=10
  2. j=10
  3. k=10
  4. while i ==10 or j ==10 or k ==10:
  5.     print(i,j,k)
  6.     i-=1
  7.     j-=1
  8.     k-=1
复制代码

最佳答案
2017-12-2 18:32:08
本帖最后由 yjsx86 于 2017-12-2 18:36 编辑

or 左右全部为假时 返回最后一个假 0 or None 返回None,有真时返回第一个真1 or 2 返回1
and 左右全为真时 返回最后一个真 1 and 2 返回2 ,有假时返回第一个假 0 and None 返回0
print(0 and 1 or False) # False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-2 18:10:03 | 显示全部楼层
数字 0 为 False  非0为真。

or 只要有一个为真,那么条件成立。

然后再来看代码,应该能理解了吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-2 18:25:54 | 显示全部楼层
ba21 发表于 2017-12-2 18:10
数字 0 为 False  非0为真。

or 只要有一个为真,那么条件成立。

嗯嗯,具体地请教下,i or j or k==10 与i==10 or j ==10 or k==10为什么不是一个意思?前者是什么意思?谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-2 18:28:51 | 显示全部楼层
jle55555 发表于 2017-12-2 18:25
嗯嗯,具体地请教下,i or j or k==10 与i==10 or j ==10 or k==10为什么不是一个意思?前者是什么意思? ...

i or j  ,i 和 j都 是0假,非0真。


i ==10  ,(i=10)==10才为真。 (i=9) ==10 这才叫为假
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-2 18:32:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yjsx86 于 2017-12-2 18:36 编辑

or 左右全部为假时 返回最后一个假 0 or None 返回None,有真时返回第一个真1 or 2 返回1
and 左右全为真时 返回最后一个真 1 and 2 返回2 ,有假时返回第一个假 0 and None 返回0
print(0 and 1 or False) # False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-2 20:00:11 | 显示全部楼层
确实是返回值的问题,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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