这几天都开始学习基础知识了,基础不牢,地动山摇!今天学习的知识主要是运算符,记载一个比较重要的知识点,关于逻辑运算符短路问题,代码清晰,直接上代码!
代码
#and or 左右两边都是表达式的时候,结果一定是true和false
#是不是有逻辑运算符 Q:结果一定是bool类型? A:不一定
#and 只要左边是真 继续往后执行 只要左边为假,立即终止
4<3 and print('hello world')
#4<3 and print('处对象嘛,滚') #4<3 假,短路 不再往后继续执行,不输出结果
#下面进行了隐示类型转换
print(5 and 0 and '计算机')#0在逻辑表达式时,为False 短路 不再往后执行,直接跳出(0的数据类型变成bool类型为False)
print("我"and"在"and"终点"and"等你")
#or 只要左边是假 继续往后执行 只要左边是真,立即终止
prin(0 or [] or '科学与技术'or 123)#前面都是假,继续执行。 '科学与技术'为真 短路 直接跳出
#在python中,只有空字符串'',"",数字0,空字典{},空列表[],空元组(),和空数据None会被转换成为False,
# 其他的都会被转换成为True
print(bool(''))#空字符串
print(bool(0))#数字0
print(bool({}))#空字典
print(bool([]))#空列表
print(bool(()))#空元组
print(bool(None))
运算符的优先级
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
^ & | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not>and>or | 逻辑运算符 |
算数运算符
>位运算符
>比较运算符
>赋值运算符
>逻辑运算符