本篇文章记录的是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) #False
3、 逻辑运算符的优先级 (了解)
如果单独的就只是一串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}) # True
2、 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
判断身份不相同