鱼C论坛

 找回密码
 立即注册
查看: 1678|回复: 2

[已解决]这里到底什么意思

[复制链接]
发表于 2021-6-16 22:51:39 | 显示全部楼层 |阅读模式

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

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

x
>>> 3 and 4
4
>>> 4 or 5
4



请问这里到底什么意思  为什么会直接出现数字呢?
最佳答案
2021-6-16 23:02:52

首先要知道 Python 中非 0 的数值布尔类型值均为 True ,而 0 为 False,另外这里涉及的是短路逻辑

短路逻辑规则如下:
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。
若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。
若 and 的左侧逻辑值为 True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。


这里可以简单理解下结果情况:

and 两边全为真则返回右边的值,否则都返回 0 即 False

or 只要一遇到真,就返回该处的值,后续的判断被短路


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-16 23:02:14 | 显示全部楼层
因为 它们不是 ==, !=, <, > 等这些 “比较运算符” ,结果是 布尔值 。

而是 “逻辑运算符” not, and, or,其结果是 按其特定逻辑执行的、最终的 表达式计算结果。具体规则,请百度。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-16 23:02:52 | 显示全部楼层    本楼为最佳答案   

首先要知道 Python 中非 0 的数值布尔类型值均为 True ,而 0 为 False,另外这里涉及的是短路逻辑

短路逻辑规则如下:
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。
若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。
若 and 的左侧逻辑值为 True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。


这里可以简单理解下结果情况:

and 两边全为真则返回右边的值,否则都返回 0 即 False

or 只要一遇到真,就返回该处的值,后续的判断被短路


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 07:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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