[Python] 运算符的种类与含义

Python中的运算符是构建有意义程序的基础。与数学符号相似,Python的运算符具有特定的功能。在本文中,我们将深入探讨Python中的各种运算符,解释其功能,并提供样例代码以便更清晰地理解。

Python中的运算符类型

算术运算符 (Arithmetic Operators)

算术运算符用于基本的数学运算。这些运算符支持如加法、减法、乘法和除法等主要的计算。

python
a = 5
b = 3

print(a + b)  # 加法
print(a - b)  # 减法
print(a * b)  # 乘法
print(a / b)  # 除法
8
2
15
1.6666666666666667
运算符运算示例结果描述
+加法5 + 813运算符两侧的值相加
-减法8 - 53从左操作数中减去右操作数
*乘法5 * 840运算符两侧的值相乘
/除法8 / 24左操作数除以右操作数
%取余8 % 53返回除法的余数
//地板除法8 // 51结果为整数,并且向数线的左侧调整
**指数运算2 ** 38对操作数执行指数(幂)计算

关系运算符 (Relational Operators)

关系运算符用于比较两个操作数的值。通过这些运算符,我们可以评估两个值是否相等,一个值是否大于另一个值,或一个值是否小于另一个值。它们基于比较的结果返回一个布尔值。

python
print(a > b)  # 大于
print(a < b)  # 小于
print(a == b) # 等于
True
False
False
运算符运算示例结果描述
==等于5 == 8False如果两个操作数的值相等,则为真
!=不等于5 != 8True如果两个操作数的值不相等,则为真
>大于8 > 5True如果左操作数大于右操作数,则为真
<小于5 < 8True如果左操作数小于右操作数,则为真
>=大于或等于8 >= 5True如果左操作数大于或等于右操作数,则为真
<=小于或等于5 <= 8True如果左操作数小于或等于右操作数,则为真

逻辑运算符 (Logical Operators)

逻辑运算符用于评估多个条件的真假。它们主要用于通过组合各种条件产生最终的逻辑结果(真或假)以控制程序的流程。

python
x = True
y = False

print(x and y) # 逻辑与
print(x or y)  # 逻辑或
print(not x)   # 逻辑非
False
True
False
运算符操作示例结果描述
and逻辑与True and FalseFalse两个操作数都为真时为真
or逻辑或True or FalseTrue至少有一个操作数为真时为真
not逻辑非not TrueFalse操作数为假时为真(对操作数进行取反)

位运算符 (Bitwise Operators)

位运算符作用于数字的二进制表示。它们在操作数的各个位上执行操作,从而在位级上实现逻辑运算、移位和取反操作。

python
print(a & b)   # 位与
print(a | b)   # 位或
print(a ^ b)   # 位异或
1
7
6
运算符操作示例结果描述
&位与5 & 31两操作数都设定的位都设定
|位或5 | 37任一操作数设定的位都设定
^位异或5 ^ 36只在一个操作数中设定的位
~位非~5-6设定的位都不设定,反之亦然
<<左移5 << 110将数字的位向左移动
>>右移5 >> 12将数字的位向右移动

赋值运算符 (Assignment Operators)

赋值运算符用于为变量赋值。除基本赋值外,这些运算符还提供了将操作与赋值结合的功能。例如,它们可以给一个值加上一个特定的数字,然后将结果赋给一个变量。

python
a += 2  # a的值增加2
b -= 1  # b的值减少1
a = 7
b = 2
运算符操作示例结果描述
=赋值x = 77将右操作数的值赋给左操作数
+=加并赋值x += 3x + 3将左操作数加上右操作数的值,然后将结果赋给左操作数
-=减并赋值x -= 3x - 3将左操作数减去右操作数的值,然后将结果赋给左操作数
*=乘并赋值x *= 3x * 3将左操作数乘以右操作数的值,然后将结果赋给左操作数
/=除并赋值x /= 3x / 3将左操作数除以右操作数的值,然后将结果赋给左操作数
%=取模并赋值x %= 3x % 3取左操作数与右操作数的模,然后将结果赋给左操作数
//=取整除并赋值x //= 3x // 3将左操作数整除右操作数的值,然后将结果赋给左操作数
**=幂并赋值x **= 3x ** 3将左操作数的值提升为右操作数的幂,然后将结果赋给左操作数

成员运算符 (Membership Operators)

成员运算符主要用于判断指定值是否存在于某个序列中,如列表、字符串或元组。

python
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)

身份运算符用于比较两对象的内存位置。其主要目的是判断两个变量是否引用了内存中的同一个对象。

python
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

  1. Python中===有何不同?
    • ==用于比较两操作数的值是否相等,返回一个布尔值(TrueFalse)。例如,7 == 7的结果是True。而=用于将右操作数的值赋给左边的变量。
  2. Python中///有何不同?
    • /运算符进行除法并返回一个浮点结果。例如,5 / 2的结果是2.5。相比之下,//进行整除并向下舍入到最接近的整数,所以5 // 2的结果是2
  3. 何时应使用位运算符如&|?
    • 位运算符直接在数字的二进制表示上执行操作。在特定场景中,如在数据处理或低级编程中操纵单个位时,它们非常有用。
  4. 为什么使用is运算符而不是==?
    • is运算符检查两个变量是否引用内存中的同一对象,而不仅仅是它们的值是否相等。例如,两个值相同的列表对于==可能是True,但如果它们在内存中是不同的对象,对于is则是False
  5. innot in如何在Python的不同数据类型上工作?
    • 成员运算符用于测试存在性。在字符串中,in检查是否存在子字符串。在列表或元组中,它检查是否存在项目。例如,'apple' in 'pineapple'True3 in [1, 2, 3]也是True
© Copyright 2023 CLONE CODING