- 1、算数运算符
- 2、赋值运算符
- 3、比较运算符
- 4、布尔运算符
- 5、位运算符
- 6、运算符的优先级
1. +
2. -
3. *
4. /
5. //
6. %
7. **
基本的算数运算如下:
print(1+1) # 加法运算 2
print(1-1) # 减法运算 0
print(2*4) # 乘法运算 8
print(5/2) # 除法运算 2.5
print(5//2) # 整除运算 2
print(5%2) # 取余运算 1
print(2**10) # 幂运算 1024
但是有时候会有带有负号的整除和取余运算,当遇到一正一负的整除,是需要向下取整;当遇到一正一负的取余,余数 = 被除数 - 除数 * 商。
案例如下:
print(9//4) # 2
print(-9//-4) # 2
print(-9//4) #-3
print(9//-4) #-3 一正一负的整数公式,向下取整
print(-9%4) # 余数 = 被除数 - 除数 * 商 -9-4*(-3)= 3
print(9%-4) # 9-(-4)*(-3) = -3
2、赋值运算符
- 支持链式赋值: a = b = c = 20
- 支持参数赋值:+= 、-=、*=、/=、%=、//=
- 支持系列解包赋值:a,b,c = 2,3,4
链式赋值类似于多个指针指向同一个内存地址,案例如下:
程序:
# 赋值运算符,顺序从右到左
print('---------支持链式赋值---------')
a = b = c = 3+4
print('a: ', a, id(a))
print('b: ', b, id(b))
print('c: ', c, id(c))
输出:
---------支持链式赋值---------
a: 7 2480425140656
b: 7 2480425140656
c: 7 2480425140656
参数赋值如下
程序:
print('---------支持参数赋值--------')
a = 20
a += 30
print(a) # 50
a -= 10
print(a) # 40
a *= 2
print(a) # 80
a //= 3
print(a) # 26
a /= 5
print(a) # 5.2
a %= 3
print(a) # 2.2
输出:
---------支持参数赋值--------
50
40
80
26
5.2
2.2
系列解包赋值如下,值得注意的是当需要交换两个数的值的时候,Python中可以不手动创建临时变量,直接使用解包赋值就可以实现。
程序:
print('---------支持系列解包赋值--------')
a, b, c = 20, 30, 40
print(a, b, c)
print('-------交换两个变量的值-------')
a, b = 10, 20
print('交换之前:', a, b)
a, b = b,a
print('交换之后:', a, b)
输出:
---------支持系列解包赋值--------
20 30 40
-------交换两个变量的值-------
交换之前: 10 20
交换之后: 20 10
3、比较运算符
1.> 、<、>=、<=、!=
2. == :比较的是对象的 value 值
3. is、is not :比较的是对象的 id
案例如下:
程序:
# 比较运算符的结果是 bool 类型
a, b = 10, 20
print('a > b ?',a > b) # False
print('a < b ?',a < b) # True
print('a >= b ?',a >= b)# False
print('a <= b ?',a <= b)# True
print('a == b ?',a == b)# False
print('a != b ?',a != b)# True
输出:
a > b ? False
a < b ? True
a >= b ? False
a <= b ? True
a == b ? False
a != b ? True
程序:
a = 10
b = 10
print('a==b?',a==b) # True,说明 a b的value相等
print('a is b?',a is b)# True,说明 a b的id相等
print('a is not b?',a is not b)
list1 = [1,2,3,4]
list2 = [1,2,3,4]
print('list1 == list2?',list1 == list2) # True
print('list1 is list2?',list1 is list2) # False
输出:
a==b? True
a is b? True
a is not b? False
list1 == list2? True
list1 is list2? False
4、布尔运算符
- and : 与
- or: 或
- not:非
- in:是否在字符串内
- not in:是否不在字符串内
程序:
# 布尔运算符
a,b = 1,2
# =========== 与 and ==========
print(a==1 and b==2) # True
print(a==1 and b<2) # False
# =========== 或 or ==========
print(a==1 or b<2)# True
print(a<1 or b<2)# False
# =========== 非 not ==========
print(not True) # False
# =========== in ==========
s='helloworld'
print('wo' in s)# True
print('d' in s)# True
# =========== not in ==========
print('x' not in s)# True
print('o' not in s)# False
5、位运算符
- 位与 &
- 位或 |
- 左移运算符 << :高位溢出舍去、低位补0
- 右移运算符 >> :低位溢出舍去、高位补0
程序:
# & 运算
print(4 & 8) # 0
print(4 & 5) # 4
# | 运算
print(4 | 8) # 12
# << 左移
print(2 << 2) # 8
# >> 右移
print(8 >> 2 ) # 2
6、运算符的优先级
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)