运算符
在 Python 中,运算符用于执行各种操作,如数学计算、比较和逻辑运算。Python 提供了多种运算符,分为几类:
- 算术运算符:用于基本的数学运算。
- 比较运算符:用于比较两个值。
- 逻辑运算符:用于执行逻辑操作。
- 位运算符:用于对整数进行位级操作。
- 赋值运算符:用于将值赋给变量并进行操作。
- 身份运算符:用于比较对象的内存地址。
- 成员运算符:用于检查值是否在序列中。
1. 算术运算符
用于执行基本的数学操作。
加法 (
+):pythona = 5 + 3 # 结果是 8减法 (
-):pythona = 5 - 3 # 结果是 2乘法 (
*):pythona = 5 * 3 # 结果是 15除法 (
/):pythona = 5 / 3 # 结果是 1.6666...整数除法 (
//): 返回商的整数部分pythona = 5 // 3 # 结果是 1取模 (
%): 返回除法的余数pythona = 5 % 3 # 结果是 2幂运算 (
**):pythona = 5 ** 3 # 结果是 125
2. 比较运算符
用于比较两个值,并返回布尔值 (True 或 False)。
等于 (
==):pythona = (5 == 3) # 结果是 False不等于 (
!=):pythona = (5 != 3) # 结果是 True大于 (
>):pythona = (5 > 3) # 结果是 True小于 (
<):pythona = (5 < 3) # 结果是 False大于等于 (
>=):pythona = (5 >= 3) # 结果是 True小于等于 (
<=):pythona = (5 <= 3) # 结果是 False
3. 逻辑运算符
用于执行逻辑操作,通常与布尔值配合使用。
与 (
and): 如果两个操作数都为True,结果为Truepythona = (5 > 3) and (8 > 6) # 结果是 True或 (
or): 如果任意一个操作数为True,结果为Truepythona = (5 > 3) or (8 < 6) # 结果是 True非 (
not): 对操作数取反pythona = not (5 > 3) # 结果是 False
4. 位运算符
用于对整数进行位级别的操作。
按位与 (
&):pythona = 5 & 3 # 结果是 1(0101 & 0011 = 0001)&按位与,对应位数都是1,结果位数才是1,否则为0。按位或 (
|):pythona = 5 | 3 # 结果是 7(0101 | 0011 = 0111)|按位或,对应位数都是0,结果位数才是0,否则为1。按位异或 (
^):pythona = 5 ^ 3 # 结果是 6(0101 ^ 0011 = 0110)按位取反 (
~):pythona = ~5 # 结果是 -6(按位取反,负数是补码表示)左移 (
<<):pythona = 5 << 1 # 结果是 10(0101 << 1 = 1010)<<左移位运算符,高位溢出舍弃,低位补0。右移 (
>>):pythona = 5 >> 1 # 结果是 2(0101 >> 1 = 0010)>>右移位运算符,低位溢出舍弃,高位补0。
5. 赋值运算符
用于将值赋给变量,并可进行操作。
赋值 (
=):pythona = 5加法赋值 (
+=):pythona = 5 a += 3 # 相当于 a = a + 3,结果是 8减法赋值 (
-=):pythona = 5 a -= 3 # 相当于 a = a - 3,结果是 2乘法赋值 (
*=):pythona = 5 a *= 3 # 相当于 a = a * 3,结果是 15除法赋值 (
/=):pythona = 5 a /= 3 # 相当于 a = a / 3,结果是 1.6666...取模赋值 (
%=):pythona = 5 a %= 3 # 相当于 a = a % 3,结果是 2幂运算赋值 (
**=):pythona = 5 a **= 3 # 相当于 a = a ** 3,结果是 125
在 Python 中赋值运算符使用 =,执行顺序从右到左执行。
- 支持链式赋值比如:
a = b = c = 1; - 也支持参数赋值比如:
+=、-=、-=、/=、//=、%=; - 还支持解构赋值比如:
a, b, c = 10, 20, 30。
a = b = c = 10 # 链式调用,变量指向相同的内存地址
d, e, f = 10, 20, 30 # 解构赋值,变量指向各自的内存地址6. 身份运算符
用于比较对象的内存地址是否相同。
is: 判断两个对象是否引用自同一个内存位置。pythona = [1, 2, 3] b = a c = [1, 2, 3] print(a is b) # True print(a is c) # Falseis not: 判断两个对象是否引用自不同的内存位置。pythona = [1, 2, 3] b = [1, 2, 3] print(a is not b) # True
7. 成员运算符
用于检查一个值是否是某个序列(如列表、字符串、元组等)的成员。
in: 判断值是否在序列中。pythona = [1, 2, 3] print(2 in a) # Truenot in: 判断值是否不在序列中。pythona = [1, 2, 3] print(4 not in a) # True
运算符的优先级
一般情况,有括号先计算括号里的运算,再计算算术运算符,再算位运算,再算比较运算符,再算算布尔运算,最后算赋值。
括号 -> 算术运算符 -> 位运算符 -> 比较运算符 -> 逻辑运算符 -> 赋值运算符
result = 5 + 3 * 2 # 结果是 11,因为乘法优先于加法
result = (5 + 3) * 2 # 结果是 16,因为括号内的加法优先于乘法