Python 运算符详解
在 Python 中,运算符是执行操作的符号。它们可以用于执行数学运算、逻辑运算、位操作等任务。运算符可以根据其功能分为多个类别。
1. 算术运算符
算术运算符用于基本的数学计算,包括加法、减法、乘法、除法等操作。
常见算术运算符:
运算符 | 描述 | 示例 |
---|---|---|
+ |
加法 | 3 + 2 结果是 5 |
- |
减法 | 5 - 3 结果是 2 |
* |
乘法 | 4 * 2 结果是 8 |
/ |
除法 | 9 / 3 结果是 3.0 |
// |
整除 | 9 // 4 结果是 2 |
% |
取余 | 9 % 4 结果是 1 |
** |
幂运算 | 2 ** 3 3个2相乘的值结果是 8 |
示例:
a = 9
b = 4
print(a + b) # 输出 13
print(a - b) # 输出 5
print(a * b) # 输出 36
print(a / b) # 输出 2.25
print(a // b) # 输出 2
print(a % b) # 输出 1
print(a ** b) # 输出 6561
2. 比较运算符
比较运算符用于比较两个值的大小、等价性或关系,并返回布尔值 True
或 False
。
返回的True和Falese可以理解为对和错
3 == 3 可以理解为: 3是不是等于3 这句话肯定是对的 故而代码运行结果为:True
4 >= 5 可以理解为: 4是不是小于等于5 这句话肯定是错的 故而代码运行结果为:False
常见比较运算符:
运算符 | 描述 | 示例 |
---|---|---|
== |
等于 | 3 == 3 返回 True |
!= |
不等于 | 3 != 4 返回 True |
> |
大于 | 3 > 2 返回 True |
< |
小于 | 3 < 5 返回 True |
>= |
大于等于 | 3 >= 3 返回 True |
<= |
小于等于 | 4 >= 5 返回 False |
示例:
x = 5
y = 3
print(x == y) # 输出 False
print(x != y) # 输出 True
print(x > y) # 输出 True
print(x < y) # 输出 False
print(x >= y) # 输出 True
print(x <= y) # 输出 False
3. 逻辑运算符 可以查看前几期的数据类型
逻辑运算符用于进行布尔运算,通常用于判断条件。
常见逻辑运算符:
运算符 | 描述 | 示例 |
---|---|---|
and |
与运算(两边都是True才输出True) | True and False 返回 False |
or |
或运算(有一边为True即可) | True or False 返回 True |
not |
非运算(取相反值 为False则输出True,反之输出False) | not True 返回 False |
示例:
a = True
b = False
print(a and b) # 输出 False
print(a or b) # 输出 True
print(not a) # 输出 False
4. 赋值运算符
赋值运算符用于将右侧的值赋给左侧的变量。
常见赋值运算符:
运算符 | 描述 | 示例 |
---|---|---|
= |
赋值 | x = 10 |
+= |
加法赋值 | x += 5 可以理解为: x = x + 5 |
-= |
减法赋值 | x -= 5 可以理解为: x = x - 5 |
*= |
乘法赋值 | x *= 5 可以理解为: x = x * 5 |
/= |
除法赋值 | x /= 5 可以理解为: x = x / 5 |
示例:
x = 10
x += 5 # x 结果 15
x -= 3 # x 结果 12
x *= 2 # x 结果 24
x /= 4 # x 结果 6.0
5. 位运算符(不常用,了解即可)
位运算符是对整数的二进制位进行操作的运算符。计算机内部通常是以二进制的形式存储数据,因此位运算符直接对二进制位进行操作
常见位运算符:
运算符 | 描述 | 示例 |
---|---|---|
& |
按位与(AND)(将两个数的二进制位逐位进行与操作,只有两个对应的二进制位都是 1 时,结果才是 1 ,否则为 0 ) |
5 & 3 返回 1 |
' |
按位与(or)(将两个数的二进制位逐位进行与操作,只有两个对应的二进制位都是 1 时,结果才是 1 ,否则为 0 ) |
5 & 3 返回 1 |
^ |
按位异或(XOR)(将两个数的二进制位逐位进行异或操作,当两个二进制位不同(一个是 1 ,一个是 0 )时,结果为 1 ,否则为 0 ) |
5 ^ 3 返回 6 |
~ |
按位取反(NOT)(将一个数的所有二进制位反转,即 1 变 0 ,0 变 1 。对于负数,它会使用补码表示) |
~5 返回 -6 |
<< |
左移(Left Shift)(将二进制数的所有位向左移动指定的位数,左移相当于乘以 2 的相应次方) |
5 << 1 返回 10 |
>> |
右移Right Shift)(将二进制数的所有位向右移动指定的位数,右移相当于除以 2 的相应次方) |
5 >> 1 返回 2 |
示例:
a = 5 # 0101
b = 3 # 0011
print(a & b) # 输出 1 (按位与)
print(a | b) # 输出 7 (按位或)
print(a ^ b) # 输出 6 (按位异或)
print(~a) # 输出 -6 (按位取反)
print(a << 1) # 输出 10 (左移)
print(a >> 1) # 输出 2 (右移)
6. 成员运算符
成员运算符用于检查一个值是否存在于指定的序列(如字符串、列表等)中
常见成员运算符:
运算符 | 描述 | 示例 |
---|---|---|
in |
存在于(理解为:字符串a存在于字符串apple ) | 'a' in 'apple' 返回 True |
not in |
不存在于(字符串b不存在于字符串apple) | 'b' not in 'apple' 返回 True |
示例:
fruit = 'apple'
print('a' in fruit) # 输出 True
print('b' not in fruit) # 输出 True
7. 身份运算符
身份运算符用于比较两个对象是否是同一对象(即,是否指向同一内存位置)。
常见身份运算符:
运算符 | 描述 | 示例 |
---|---|---|
is |
是同一对象(x和y是是同一个对象 这句话对 故而结果显示True) | x is y 返回 True |
is not |
不是同一对象(x和y不是引用一个对象 这句话错 故而结果显示False) | x is not y 返回 False |
如何知道是否是同一个对象?
id(需要查看的变量名)
返回的是对象x
的内存地址(在CPython中是对象的唯一标识符)- 你使用
id()
函数查看x
和y
的内存地址时,发现它们是一样的,这也表明x
和y
引用了同一个对象。 - PS:内存地址每次输出都不一样
代码示例:
x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(x is y) # 输出 True
print(x is not y) # 输出 False
print(x is z) # 输出 False
print(x == z) # 输出 True
print(id(x)) #输出 2482380401856
print(id(y)) #输出 2482380401856
print(id(z)) #输出 2482380355968
8. 运算符优先级
Python 运算符有不同的优先级,优先级决定了运算符的执行顺序。例如,乘法和除法的优先级高于加法和减法。
运算符优先级(从高到低):
()
**
(幂运算)- 一元运算符:
+x
,-x
,~x
*
,/
,//
,%
+
,-
- 比较运算符:
==
,!=
,>
,<
,>=
,<=
not
and
or
可以通过使用括号 ()
来改变运算顺序。
总结
掌握 Python 中的运算符对于编写高效、清晰的代码非常重要。通过合理使用各种运算符,可以进行各种数学运算、逻辑判断和数据处理。希望本文能帮助你更好地理解 Python 的运算符。