先举例理解 数字/字符串
和 布尔值
是如何转换的
数字转布尔值
v1 = 0
v2 = bool(v1)
print(v2) # ---> False
# 总结:只有0转换成布尔值是False,其它都是True。
字符串转布尔值
v1 = ""
v2 = bool(v1)
print(v2) # ---> False
# 总结:只有空字符串转换成布尔值是False,其他都是True。
布尔值转数字或者字符串使用非常少,了解即可。转换为数字只有0(False)和1(True),转换为字符串只有空字符串("")和字符串("True")。
然后我们来看这个面试题
v1 = 1 or 9
v2 = 0 or 9
# print(v1, v2)会输出什么?
解: 当和逻辑运算符一起存在时会自动转换为布尔值,根据上面的例子得知,1是True,9也是True,0是False,v1取到第一个值等式就成立了,v2中因为0是False所以还需要继续看后面的值,所以输出1 9 ,v1和v2都为整型。
扩展
v1 = 3>4 or 4<3 and 1==1
print(v1) # ---> False,有比较运算
v2 = 1 and 9 or "" and 6
print(v2) # ---> 9
# 在没有()的情况下not优先级高于and,and优先级高于or,即优先级关系为( ) > not > and > or,同一优先级从左往右计算。
参考如下:
原文:https://www.cnblogs.com/joneyhsiao/p/11316769.html