晨曦到日暮 发表于 2017-4-19 21:17:16

not and or

not and or怎么计算?6and7and8为什么等于8?

太阳花田 发表于 2017-4-19 21:42:08

逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,        举个例子,表达式x and y,需要x和y两个变量同时为真(True)的时候,结果才为真。        因此,如果当x变量得知是假(False)的时候,表达式就会立刻返回False,而不用去管y变量的值。
这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为也应用于or操作符。
实际上,Python的做法是如果x为假,表达式会返回x的值(0),否则它就会返回y        的值。

thexiosi 发表于 2017-4-20 10:06:49

本帖最后由 thexiosi 于 2017-4-20 10:17 编辑

逻辑操作符遵循短路法则

以 “6 and 7 and 8”为例:        # 一定要加空格,否则会被识别为变量名,随后报错;数字不能作为变量名的开头
(1)6、7 均 > 0:均为True,6 and 7 相当于 True1 and True2,最后结果为 True2
(2)6 and 7 and 8 等效于 7 and 8
(3)因此,最后结果是 8

抱歉,自己说的不是太清楚,个人建议:多上机实践下,然后自己细细思考为什么结果是这样,这样理解起来就相对容易一些了

莺与鸢 发表于 2017-5-5 16:02:21

百度 ‘短路法则’前面判断过了的后面在某些情况下会直接忽略
页: [1]
查看完整版本: not and or