运算符 | 说明 |
---|---|
= | 简单赋值运算符 |
+=、-=、*=、/=、%=、//=、**=等 | 复合赋值运算符 |
1. 赋值运算符的功能
- 所有的赋值运算符都是用来给变量赋值的(都是完成将数据保存到一个变量中)
- 重要结论:所有的赋值运算符表达式都没有结果 -> 无法提供数据
2. 简单赋值运算符:=
name = 'abc' # 定义变量,将‘abc’赋值给name
name = 'xyz' # 重新赋值,将'xyz'赋值给name# =的右边只要是一个数据或者可以计算结果的表达式,都可以给=左边的变量进行赋值
n1 = True
print(n1)
n2 = 2 + 3 * 2 - 10 + 2 ** 10
print(n2) # 1022# 错误写法
# n3 = (n2 = n1 + 10)
# print(n3)
'''
原因:n2 = n1 + 10-----》将n1 + 10的结果赋值给n2n3 = (n2 = n1 + 10)-----》只是将n1+10的结果赋值给了n2,但是n2 = n1 + 10整体没有结果,无法给n3赋值
'''
# 正确写法一
# n2 = n1 + 10
# n3 = n2
# print(n3)# 正确写法二
# == 判断两边的数据是否相等,如果相等则为True、不想等则为False
n3 = (n2 == n1 + 10)
print(n3) # False
3. 复合赋值运算符:+= -= *= /= //= %= **=
- 变量名 += 数据
- 先将变量中本来保存的数据取出来和后面的数据进行加法运算,最后将运算结果保存到前面的变量中
注意:
- 变量名对应的变量必须是已经赋值过的变量
m1 = 3
m1 = 9 # 重新赋值
print(m1)n1 = 3
n1 += 9 # 等价于n1 = n1 + 9,先计算n1 + 9,然后给n1进行重新赋值
print(n1)# 问题1:一定要书写成+=,而不是+ =
a = 3
a *= 10
print(a)# 问题2:在使用复合赋值运算符时,一定要先定义变量,然后才使用
# b += 1 # NameError: name 'b' is not defined# 练习
b += 100
print(b) # 200b -= 50
print(b) # 150b *= 2
print(b) # 300b %= 2
print(b) # 0
4. 运算符优先级
混合运算中先算优先级高的运算符,再算优先级低的运算符:
- 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
- ** > * / % // > + -
- and > or
- 有括号先算括号里面的 - ()
注意:
- =用于定义变量或给变量重新赋值
- =的右边只要是一个数据或可以计算结果的表达式,都可以给=左边的变量赋值
- 无论=右边的表达式多么复杂,永远都是先计算=右边表达式的结果,然后给=左边的变量赋值,换句话,=的优先级最低
- += -= *= /= //= %= **=的工作原理:必须先定义变量,然后给该变量进行相应的运算,最后给该变量进行重新赋值