
本篇文章记录的是Python运算符知识。
一、算术运算符
1、什么是算数运算符
就是做加减乘除四则运算以及其他的复杂运算的, 让计算机能像人一样可以做计算
| 符号 | 含义 | 
|---|---|
| + | 相加 | 
| - | 相减 | 
| * | 相乘 | 
| / | 相除 (有小数部分,结果全是float类型) | 
| // | 地板除 (只保留整数部分) | 
| % | 取余/取模 (只保留余数) | 
| ** | 幂运算 | 
print(10/2) # 5.0 float类型重点提一嘴
10 // 3   ==> 3
10 % 3   ==> 1
2 ** 3     ==> 8二、 比较运算符
1、 什么是比较运算符
就是做比较运算的, 让计算机能像人一样可以做比较
| 符号 | 含义 | 
|---|---|
| > | 大于 | 
| < | 小于 | 
| >= | 大于等于 | 
| <= | 小于等于 | 
| == | 等于 | 
| != | 不等于 | 
三、 赋值运算符
1、 什么是赋值运算符
就是做赋值操作的, 让计算机能像人一样给一个事物附上一个值, 记录下来
(1) 增量赋值
| 符号 | 含义 | 
|---|---|
| = | 变量的赋值 | 
| += | 加等于 | 
| -= | 减等于 | 
| *= | 乘等于 | 
| /= | 除等于 | 
| //= | 取整等于 | 
| %= | 取余等于 | 
| **= | 幂等于 | 
提一嘴 , 你在python会经常见到
x += 1  等价于 x = x +1(2)交叉赋值
x = 10
y = 20
x,y = y,x(3) 链式赋值
x=y=z = 10
# 把栈区中的10的内存地址分别赋值给x,y,z(4) 解压赋值
一般适合在取开头前几个或者末尾几个数据的值,不适合取数据量大的容器的中间值。
x,y = [10,20]
print(x)   # 10
print(y)   # 20四、 逻辑运算符
1、 逻辑运算
所谓的逻辑运算,你可以先简单的认为就是判断,比如今天下不下雨,下雨。这就一个判断。
2、 逻辑运算符
逻辑运算符就是用来把多个条件连在一起做判断的符号
| 符号 | 含义 | 
|---|---|
| not | 非(取反) | 
| and | 与 | 
| or | 或 | 
(1) not
# not: 就是把紧跟其后的那个条件结果取反
# not与紧跟其后的那个条件是一个不可分割的整体
print(not 16 > 13) # False
print(not 0) # True(2)and
and(逻辑与)用来连接左右两个条件。两个条件同时为真,最终结果才为真。如果连接多个条件, 条件全为真, 最终结果才是True.
print(True and 10 > 1) # True
print(1 > 3 and 4 > 8 and False )(3) or
or ( 逻辑或 ) 用来连接左右两个条件, 两个条件但凡有一个为True, 最终结果就为True, 两个条件都为False的情况, 最终结果才为False。
如果连接多个条件, 条件全为假, 最终结果才是False。
print(3 > 2 or False) # True
print(False or 6 < 5 or 7 > 99) #False3、 逻辑运算符的优先级 (了解)
如果单独的就只是一串and/or连接, 按照从左到右的顺序依次运算即可。如果是混合使用就要考虑优先级了。
(1) 优先级
括号 ( ) > not > and > or
print(3 > 4 and not 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3) # False这种混合运算一般不会出现在自己代码里, 只有面试题你会见到
小练习:
not 3 > 4 and 5 > 7 or 7 > 9 and not 3 == 3 and x=='x'
3 > 4 and 5 > 7 and 7 > 9 or not 3 == 3 and x=='x'4、短路运算
短路运算:遵循偷懒原则,偷懒到哪个位置,就把当前位置的值返回。在面试题中,一般和逻辑运算符优先级一起考。注意一点,返回的值不一定是显示的布尔值,可能是隐式的布尔值
10 > 3 and True     # 偷懒到True,所以返回True
10 < 100 and 0 and True # 偷懒到0,返回0
10 and 0 or 1 > 3 and 9 == 9 or 80 > 70 # 先看优先级,然后再看每个部分偷懒到哪里,然后再算最后的值 True五、成员运算符
1、 in
成员运算符就是判断是否存在, 返回一个布尔值
# 判断一个小字符串是否在一个大字符串中
print( 'x' in 'zhenxiang' ) # True
# 判断元素是否存在于列表
print( 10 in [11,10,12]) # True
# 判断key是否存在于字典
print('k1' in {'k1':1}) # True2、 not in
判断是否不在,一般判断不存在时,推荐使用这种。
print( 'mn' not in 'hello word') # True六、 身份运算符
1、 is
is 就是身份运算符, 判断的是id是否相等, id( ) , 在cpython中返回的是程序运行时, 对象在内存中的地址
x = 'hello mn'
y = 'hello mn'
print(x is y) # True
# 但记住有的时候值相等未必id相等2、 is not
判断身份不相同
 
         
             京公网安备11010802044340号
京公网安备11010802044340号