运算符

  • 举个简单的例子 4 + 5 = 9 。 例子中,45 被称为操作数+ 称为运算符。
  • Python 中的运算符用于执行各种操作,例如:执行算术运算、比较值、逻辑操作等。

算术运算符

以下假设变量: a, b = 10, 3

运算符 描述 实例
+ 加法:用于将两个值相加。 a + b = 13
- 减法:用于从一个值中减去另一个值。 a - b = 7
* 乘法:用于将两个值相乘。 a * b = 30
/ 除法:用于将一个值除以另一个值。 a / b = 3.3333333333333335
// 地板除:用于执行整数除法,返回不大于结果的最大整数(向下取整)。 a // b = 3
% 取模:返回除法的余数。 a % b = 1
** 幂运算:用于计算一个值的幂次方。 a ** b = 1000

比较运算符

以下假设变量: a, b = 10, 3

运算符 描述 实例
== 等于:用于检查两个值是否相等。 a == b 返回 False
!= 不等于:用于检查两个值是否不相等。 a != b 返回 True
> 大于:用于检查一个值是否大于另一个值。 a > b 返回 True
< 小于:用于检查一个值是否小于另一个值。 a < b 返回 False
>= 大于等于:用于检查一个值是否大于或等于另一个值。 a >= b 返回 True
<= 小于等于:用于检查一个值是否小于或等于另一个值。 a <= b 返回 False

逻辑运算符

以下假设变量: a, b = 10, 3

运算符 逻辑表达式 描述 实例
and x and y 与:用于检查多个条件是否同时为真。 a and b 返回 3
or x or y 或:用于检查多个条件是否至少有一个为真。 a or b 返回 10
not not x 非:用于对条件取反。 not a 返回 False

示例:

1
2
3
# 判断是否是闰年
y = int(input('请输入一个年份:'))
print(((y % 4 == 0) and (y % 100 != 0)) or (y % 400 == 0))

赋值运算符

运算符 描述 实例
= 简单赋值:用于将一个值赋给一个变量。 x = 5 赋值
+= 加法赋值:用于将一个值与一个变量相加,并将结果赋给该变量。 x += 3 相当于 x = x + 3
-= 减法赋值:用于将一个值从一个变量中减去,并将结果赋给该变量。 x -= 2 相当于 x = x - 2
*= 乘法赋值:用于将一个值与一个变量相乘,并将结果赋给该变量。 x *= 4 相当于 x = x * 4
/= 除法赋值:用于将一个值除以一个变量,并将结果赋给该变量。 x /= 2 相当于 x = x / 2
%= 取模赋值:用于将左侧的变量取模右侧的值,并将结果赋给该变量。 x %= 3 相当于 x = x % 3
**= 幂赋值:用于将左侧的变量的值提升到右侧的幂,并将结果赋给该变量。 x **= 2 相当于 x = x ** 2
//= 取整除:用于将左侧的变量进行地板除右侧的值,并将结果赋给该变量。 x //= 5 相当于 x = x // 5

成员运算符

成员运算符用于检查一个值是否属于某个集合或序列。

运算符 描述
in 如果左侧的值存在于右侧的集合或序列中,则返回 True。
not in 如果左侧的值不存在于右侧的集合或序列中,则返回 True。

示例:

1
2
3
4
5
6
7
8
9
10
11
fruits = ['apple', 'banana', 'orange']

print('apple' in fruits) # 输出 True,因为 'apple' 存在于 fruits 列表中
print('grape' in fruits) # 输出 False,因为 'grape' 不存在于 fruits 列表中

print('apple' not in fruits) # 输出 False,因为 'apple' 存在于 fruits 列表中
print('grape' not in fruits) # 输出 True,因为 'grape' 不存在于 fruits 列表中

# 若是字典判断的是键
d = {'a': 'apple', 'b': 'banana', 'c': 'cat', 'd': 'dog'}
print('a' not in d) # 输出 False

身份运算符

用于检查两个对象是否引用同一个内存地址。

运算符 描述
is 如果两个对象具有相同的内存地址,则返回 True。
is not 如果两个对象具有不同的内存地址,则返回 True。

示例:

1
2
3
4
5
6
7
8
9
10
x = 5
y = 5
z = [1, 2, 3]
w = [1, 2, 3]

print(x is y) # 输出 True,因为 x 和 y 的值相同,它们共享相同的内存地址
print(z is w) # 输出 False,因为 z 和 w 的值相同,但它们具有不同的内存地址

print(x is not y) # 输出 False,因为 x 和 y 的值相同,它们共享相同的内存地址
print(z is not w) # 输出 True,因为 z 和 w 的值相同,但它们具有不同的内存地址

位运算符

位运算符用于对二进制数进行操作。

运算符 描述
& 按位与运算符,对两个操作数的每个对应位执行与操作。
` `
^ 按位异或运算符,对两个操作数的每个对应位执行异或操作。
~ 按位取反运算符,对操作数的每个位执行取反操作。
<< 左移运算符,将第一个操作数的二进制表示向左移动指定的位数。
>> 右移运算符,将第一个操作数的二进制表示向右移动指定的位数。

示例:

1
2
3
4
5
6
7
8
9
x = 5  # 二进制表示为 0101
y = 3 # 二进制表示为 0011

print(x & y) # 输出 1,二进制表示为 0001
print(x | y) # 输出 7,二进制表示为 0111
print(x ^ y) # 输出 6,二进制表示为 0110
print(~x) # 输出 -6,二进制表示为 1111 1111 1111 1010(补码表示)
print(x << 1) # 输出 10,二进制表示为 1010
print(x >> 1) # 输出 2,二进制表示为 0010
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a = 0b10101
b = 0b01011
print(a & b)
print(a | b)
print(a^b)

a = 0b01
'''
补码: 0000 0001
(按位取反)补码: 1111 1110
反码: 1111 1101
原码: 1000 0010
'''
print(~a)
print(a<<1)

运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转,一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符