首先要明确一点,Python的逻辑运算符,可以用来操作任何类型的表达式(不局限于Bool类型),且运算后的结果也不一定是Bool类型的,而是其左右其中一个表达式的值表达式1 and 表达式
python不一定会去计算左右两边的表达式的值,某些情况其只会计算左边表达式,而不会计算右边的表达式。
对于 and 逻辑运算符,两边都为真,则结果才为真;而只要第一个表达式的结果为假,则整个逻辑表达式的结果就是假,不需要再去计算后面的表达式的结果。
-
表达式1为 true时
逻辑表达式的结果为 表示式2
-
表示式1为 false时
逻辑表达式的结果为 表达式1
print(100 and 200)
print(0 and 400)
print("" and "https://www.cnblogs.com/jack-nie-23/")
print("https://www.cnblogs.com/jack-nie-23/" and 2)
>> 200
>> 0
>>
>> 2
表达式1 or 表达式2
对于 or 逻辑运算符,当两边的表达式都为假时则整个逻辑表达式的结果为假,而当表达式1的结果为真时,则整个逻辑表达式的结果就是为真,此时python不会再去计算表达式2的值。
-
表达式1为 true 时
逻辑表达式的结果为 表示式1
-
表达式1为 false 时
逻辑表达式的结果为 表示式2
print(100 or 200)
print(0 or 400)
print("" or "https://www.cnblogs.com/jack-nie-23/")
print("https://www.cnblogs.com/jack-nie-23/" or 2)
>> 100
>> 400
>> https://www.cnblogs.com/jack-nie-23/
>> https://www.cnblogs.com/jack-nie-23/
还有一件事
Python中表达为 false 的值有以下这些:
-
为0的数字,包括0,0.0
-
空字符串,包括 '', "" 这里指的是空字符串,不包括空字符串 ' '," "。
-
表示空值的None
-
空集合,包括(),[],{}