Python中的运算符是构建有意义程序的基础。与数学符号相似,Python的运算符具有特定的功能。在本文中,我们将深入探讨Python中的各种运算符,解释其功能,并提供样例代码以便更清晰地理解。
Python中的运算符类型
算术运算符 (Arithmetic Operators)
算术运算符用于基本的数学运算。这些运算符支持如加法、减法、乘法和除法等主要的计算。
a = 5
b = 3
print(a + b) # 加法
print(a - b) # 减法
print(a * b) # 乘法
print(a / b) # 除法
8
2
15
1.6666666666666667
| 运算符 | 运算 | 示例 | 结果 | 描述 |
|---|---|---|---|---|
+ |
加法 | 5 + 8 |
13 | 运算符两侧的值相加 |
- |
减法 | 8 - 5 |
3 | 从左操作数中减去右操作数 |
* |
乘法 | 5 * 8 |
40 | 运算符两侧的值相乘 |
/ |
除法 | 8 / 2 |
4 | 左操作数除以右操作数 |
% |
取余 | 8 % 5 |
3 | 返回除法的余数 |
// |
地板除法 | 8 // 5 |
1 | 结果为整数,并且向数线的左侧调整 |
** |
指数运算 | 2 ** 3 |
8 | 对操作数执行指数(幂)计算 |
关系运算符 (Relational Operators)
关系运算符用于比较两个操作数的值。通过这些运算符,我们可以评估两个值是否相等,一个值是否大于另一个值,或一个值是否小于另一个值。它们基于比较的结果返回一个布尔值。
print(a > b) # 大于
print(a < b) # 小于
print(a == b) # 等于
True
False
False
| 运算符 | 运算 | 示例 | 结果 | 描述 |
|---|---|---|---|---|
== |
等于 | 5 == 8 |
False | 如果两个操作数的值相等,则为真 |
!= |
不等于 | 5 != 8 |
True | 如果两个操作数的值不相等,则为真 |
> |
大于 | 8 > 5 |
True | 如果左操作数大于右操作数,则为真 |
< |
小于 | 5 < 8 |
True | 如果左操作数小于右操作数,则为真 |
>= |
大于或等于 | 8 >= 5 |
True | 如果左操作数大于或等于右操作数,则为真 |
<= |
小于或等于 | 5 <= 8 |
True | 如果左操作数小于或等于右操作数,则为真 |
逻辑运算符 (Logical Operators)
逻辑运算符用于评估多个条件的真假。它们主要用于通过组合各种条件产生最终的逻辑结果(真或假)以控制程序的流程。
x = True
y = False
print(x and y) # 逻辑与
print(x or y) # 逻辑或
print(not x) # 逻辑非
False
True
False
| 运算符 | 操作 | 示例 | 结果 | 描述 |
|---|---|---|---|---|
and |
逻辑与 | True and False |
False | 两个操作数都为真时为真 |
or |
逻辑或 | True or False |
True | 至少有一个操作数为真时为真 |
not |
逻辑非 | not True |
False | 操作数为假时为真(对操作数进行取反) |
位运算符 (Bitwise Operators)
位运算符作用于数字的二进制表示。它们在操作数的各个位上执行操作,从而在位级上实现逻辑运算、移位和取反操作。
print(a & b) # 位与
print(a | b) # 位或
print(a ^ b) # 位异或
1
7
6
| 运算符 | 操作 | 示例 | 结果 | 描述 |
|---|---|---|---|---|
& |
位与 | 5 & 3 |
1 | 两操作数都设定的位都设定 |
| |
位或 | 5 | 3 |
7 | 任一操作数设定的位都设定 |
^ |
位异或 | 5 ^ 3 |
6 | 只在一个操作数中设定的位 |
~ |
位非 | ~5 |
-6 | 设定的位都不设定,反之亦然 |
<< |
左移 | 5 << 1 |
10 | 将数字的位向左移动 |
>> |
右移 | 5 >> 1 |
2 | 将数字的位向右移动 |
赋值运算符 (Assignment Operators)
赋值运算符用于为变量赋值。除基本赋值外,这些运算符还提供了将操作与赋值结合的功能。例如,它们可以给一个值加上一个特定的数字,然后将结果赋给一个变量。
a += 2 # a的值增加2
b -= 1 # b的值减少1
a = 7
b = 2
| 运算符 | 操作 | 示例 | 结果 | 描述 |
|---|---|---|---|---|
= |
赋值 | x = 7 |
7 | 将右操作数的值赋给左操作数 |
+= |
加并赋值 | x += 3 |
x + 3 | 将左操作数加上右操作数的值,然后将结果赋给左操作数 |
-= |
减并赋值 | x -= 3 |
x - 3 | 将左操作数减去右操作数的值,然后将结果赋给左操作数 |
*= |
乘并赋值 | x *= 3 |
x * 3 | 将左操作数乘以右操作数的值,然后将结果赋给左操作数 |
/= |
除并赋值 | x /= 3 |
x / 3 | 将左操作数除以右操作数的值,然后将结果赋给左操作数 |
%= |
取模并赋值 | x %= 3 |
x % 3 | 取左操作数与右操作数的模,然后将结果赋给左操作数 |
//= |
取整除并赋值 | x //= 3 |
x // 3 | 将左操作数整除右操作数的值,然后将结果赋给左操作数 |
**= |
幂并赋值 | x **= 3 |
x ** 3 | 将左操作数的值提升为右操作数的幂,然后将结果赋给左操作数 |
成员运算符 (Membership Operators)
成员运算符主要用于判断指定值是否存在于某个序列中,如列表、字符串或元组。
list = [1, 2, 3, 4, 5]
print(3 in list) # 判断3是否在列表中
print(6 not in list) # 判断6是否不在列表中
True
True
| 运算符 | 操作 | 示例 | 结果 | 描述 |
|---|---|---|---|---|
in |
若变量存在指定序列中则返回真,否则返回假 | 5 in [1, 2, 3, 4, 5] |
True | 若值/变量在序列中则返回真 |
not in |
若变量不在指定序列中则返回真,否则返回假 | 6 not in [1, 2, 3, 4, 5] |
True | 若值/变量不在序列中则返回真 |
身份运算符 (Identity Operators)
身份运算符用于比较两对象的内存位置。其主要目的是判断两个变量是否引用了内存中的同一个对象。
x = [1, 2, 3]
y = x
print(y is x) # 因为y和x引用同一对象,所以返回真
print(y is not x) # 同上理,返回假
True
False
| 运算符 | 操作 | 示例 | 结果 | 描述 |
|---|---|---|---|---|
is |
若两变量引用同一对象则返回真,否则返回假 | x is y |
取决于x和y的值 | 若两变量为同一对象则返回真 |
is not |
若两变量不是引用同一对象则返回真,否则返回假 | x is not y |
取决于x和y的值 | 若两变量不是同一对象则返回真 |
有效地理解Python的运算符对于高效编程至关重要。无论是比较变量、调整值还是进行计算,Python的多功能运算符都是这些操作的核心。
FAQs
Python中
==和=有何不同?==用于比较两操作数的值是否相等,返回一个布尔值(True或False)。例如,7 == 7的结果是True。而=用于将右操作数的值赋给左边的变量。
Python中
//和/有何不同?/运算符进行除法并返回一个浮点结果。例如,5 / 2的结果是2.5。相比之下,//进行整除并向下舍入到最接近的整数,所以5 // 2的结果是2。
何时应使用位运算符如
&或|?- 位运算符直接在数字的二进制表示上执行操作。在特定场景中,如在数据处理或低级编程中操纵单个位时,它们非常有用。
为什么使用
is运算符而不是==?is运算符检查两个变量是否引用内存中的同一对象,而不仅仅是它们的值是否相等。例如,两个值相同的列表对于==可能是True,但如果它们在内存中是不同的对象,对于is则是False。
in和not in如何在Python的不同数据类型上工作?- 成员运算符用于测试存在性。在字符串中,
in检查是否存在子字符串。在列表或元组中,它检查是否存在项目。例如,'apple' in 'pineapple'是True,3 in [1, 2, 3]也是True。
- 成员运算符用于测试存在性。在字符串中,