|
发表于 2022-5-12 13:01:32
|
显示全部楼层
本楼为最佳答案
这里确实有些问题,但是甲鱼哥题目中也说的大多数的 if-else 结构 可以用 and-or 来替换,没有说全部都可以
先了解下短路逻辑:
短路逻辑规则如下:
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。
若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。
若 and 的左侧逻辑值为 True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。
然后我们开始解析上三行代码:
"love" and 520 or 404 根据短路逻辑: 先判断 "love" and 520 ,因为 and 两边都为真,那么返回右边的值 520
之后表达式为 520 or 404,因为 or 只要为真就直接返回,所以返回 520
"love" and False or 404 根据短路逻辑:先判断 "love" and False ,因为右边为 False ,则返回 False
之后表达式为 False or 404,同理因为 or 只要为真就直接返回,因为左边为 False ,所以返回右边的值 404
"love" and 0 or 404 根据短路逻辑:先判断 "love" and 0 ,因为右边为 0 ,则返回 0
之后表达式为 0 or 404,同理因为 or 只要为真就直接返回,因为左边为 0 ,所以返回右边的值 404
|
评分
-
查看全部评分
|