程序通过输入、计算、输出执行,计算的过程需要变量和运算符。
一、算数运算符
1、算数运算符的类型
+ - * / ** //
2、算数运算符的使用
num1 = 6
num2 = 9
print(f"{num1}+{num2} = {num1+num2}")
print(f"{num1}-{num2} = {num1-num2}")
print(f"{num1}*{num2} = {num1*num2}")
# 除的结果为float型
print(f"{num1}/{num2} = {num1/num2}")
# 求余数 任意一个数求余n,有n种情况,即0~n-1
# 求余数 应用在判断奇偶数 %2,结果有0和1
print(f"{num1}%{num2} = {num1%num2}")
# m**n 就是n个m相乘, 即幂次方
print(f"{num1}**{num2} = {num1**num2}")
# 整除的结果为int型
print(f"{num1}//{num2} = {num1//num2}")
结果:
6+9 = 15
6-9 = -3
6*9 = 54
6/9 = 0.6666666666666666
6%9 = 6
6**9 = 10077696
6//9 = 0
3、算术运算符的优先级
**、// 大于 %、*、/ 、大于 +、-
二、赋值运算符
1、赋值运算符的类型
+=、-=、*=、/=、%=、**=、//=
2、赋值运算符的使用
values = 2
values += 3
print(values)
values = 2
values -= 4
print(values)
values = 2
values *= 7
print(values)
values = 2
values //=2
print(values)
values = 2
values /=5
print(values)
values = 2
values **= 6
print(values)
结果:
5
-2
14
1
0.4
64
3、赋值运算符的优先级
赋值运算符的优先级低于算数运算符 。
三、比较运算符
1、比较运算符的类型
>、>=、<、<=、!=、==
2、比较运算符,比较结果为bool值,为True和False。
3、比较运算符应用于相同类型的比较
# 同类型的才可相加
result = True + 1 # 2;True不能和数字1或字符串1相加
result = True + False #1;
# 类型不一样,结果为False
print(5 == "5", False == "False") # False False
# 对于布尔类型来说 True为1,False 为0
print(0 == "False", 0 == False, 1 == True, 100 == True) # False True True False
4、比较运算符在python中的特殊点
# 在python中支持连续比较
print(5 > 3 > 1, 5< 10 < 20 < 30)
# 若前面为False则不再向后判断
print(5 > 6 > 1) #False
5、比较运算符的优先级
# 算数运算符 优先级高于 比较运算符
# 比较运算符 优先级高于 赋值运算符
result = 5 > 3 + 2
print(result) #False
四、逻辑运算符
1、比较运算符的类型
and、or、not
2、运算规则
(1)and
# and的结果不是True和False
# 左面为真,返回右边的值
result = True and -10
print(result) #-10
# 左侧为假,直接返回左侧 None、""(空字符串)、0、False
result = 0 and True
print(result) # 0
(2) or
# or的结果不是True和False
# or 左侧为真 返回左边 ; 左侧为假,返回右边
result = "hello" or False #hello
result = -100 or False #-100
result = 0 or 0 #0
result = 0 or 10 #10
result = 0 or False #False
(3)not
# not的值为True或者False
result = not 10 #False
3、逻辑运算符的优先级比较
not 大于 and 大于 or
五、位运算符
1、位运算符的类型
- &:按位与
- |:按位或
- ^:按位异或
- >>:向右移动
- <<:向左移动
2、位运算符的使用
- 位运算符计算二进制的数值
- 左侧补零对结果没有影响
- 右侧补零数值翻倍
(1)& 按位与
# 相同位置 全为1 结果为1,有一个为0,结果为0
a = 0b10101
b = 0b01111
# 0b00101
print(a & b) #5
(2)| 按位或
# 相同位置 全为0 结果为0 ;有一个为1,结果为1,有一个为0,结果为0
a = 0b10101
b = 0b01111
# 0b11111
print(a | b) #31
(3)^ 按位异或
相同位置 相同为0,不同为1
a = 0b10101
b = 0b01111
# 0b11010
print(a ^ b) #26
(4)>>向右移动
# >> 依次向右移动 最右侧的n位移除
print(a >> 2) #5
(5)<<向左移动
# << 依次向左移动 最左侧补0;左移几位相当于翻几倍
print(a << 2) #84