Python 提供了多种运算符,用于执行算术、比较、逻辑等各种操作。以下是 Python 中常见的运算符类型及其用法:
文章目录
-
-
- [1. 算术运算符](#1. 算术运算符)
- [2. 比较运算符](#2. 比较运算符)
- [3. 逻辑运算符](#3. 逻辑运算符)
- [4. 赋值运算符](#4. 赋值运算符)
- [5. 位运算符](#5. 位运算符)
- [6. 成员运算符](#6. 成员运算符)
- [7. 身份运算符](#7. 身份运算符)
- [8. 运算符优先级](#8. 运算符优先级)
-
1. 算术运算符
算术运算符用于执行基本的数学运算。
运算符 | 描述 | 示例 |
---|---|---|
+ |
加法 | x + y |
- |
减法 | x - y |
* |
乘法 | x * y |
/ |
除法(返回浮点数) | x / y |
// |
整除(返回整数商) | x // y |
% |
模(取余) | x % y |
** |
幂(指数) | x ** y |
示例:
python
x = 10
y = 3
print(x + y) # 输出: 13
print(x - y) # 输出: 7
print(x * y) # 输出: 30
print(x / y) # 输出: 3.3333333333333335
print(x // y) # 输出: 3
print(x % y) # 输出: 1
print(x ** y) # 输出: 1000
2. 比较运算符
比较运算符用于比较两个值,并返回一个布尔值(True
或 False
)。
运算符 | 描述 | 示例 |
---|---|---|
== |
等于 | x == y |
!= |
不等于 | x != y |
> |
大于 | x > y |
< |
小于 | x < y |
>= |
大于或等于 | x >= y |
<= |
小于或等于 | x <= y |
示例:
python
x = 10
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 ) |
x > 0 and x < 10 |
or |
逻辑或(任意一个条件为真时返回 True ) |
x < 0 or x > 10 |
not |
逻辑非(取反) | not (x == y) |
示例:
python
x = 5
y = 3
print(x > 0 and x < 10) # 输出: True
print(x < 0 or x > 10) # 输出: False
print(not (x == y)) # 输出: True
4. 赋值运算符
赋值运算符用于将值赋给变量。除了简单的 =
,Python 还提供了复合赋值运算符,可以简化某些操作。
运算符 | 描述 | 等价于 |
---|---|---|
= |
简单赋值 | x = 5 |
+= |
加法赋值 | x += 3 等价于 x = x + 3 |
-= |
减法赋值 | x -= 3 等价于 x = x - 3 |
*= |
乘法赋值 | x *= 3 等价于 x = x * 3 |
/= |
除法赋值 | x /= 3 等价于 x = x / 3 |
//= |
整除赋值 | x //= 3 等价于 x = x // 3 |
%= |
模赋值 | x %= 3 等价于 x = x % 3 |
**= |
幂赋值 | x **= 3 等价于 x = x ** 3 |
示例:
python
x = 5
x += 3 # x = x + 3
print(x) # 输出: 8
x = 10
x //= 3 # x = x // 3
print(x) # 输出: 3
5. 位运算符
位运算符用于对二进制数进行按位操作。
运算符 | 描述 | 示例 |
---|---|---|
& |
按位与 | x & y |
` | ` | 按位或 |
^ |
按位异或 | x ^ y |
~ |
按位非 | ~x |
<< |
左移 | x << n |
>> |
右移 | x >> n |
示例:
python
x = 6 # 二进制: 0110
y = 3 # 二进制: 0011
print(x & y) # 输出: 2 (二进制: 0010)
print(x | y) # 输出: 7 (二进制: 0111)
print(x ^ y) # 输出: 5 (二进制: 0101)
print(~x) # 输出: -7 (二进制: 11111111...1010, 补码表示)
print(x << 1) # 输出: 12 (二进制: 1100)
print(x >> 1) # 输出: 3 (二进制: 0011)
6. 成员运算符
成员运算符用于检查某个值是否在序列(如字符串、列表、元组等)中。
运算符 | 描述 | 示例 |
---|---|---|
in |
如果值在序列中则返回 True |
'a' in 'apple' |
not in |
如果值不在序列中则返回 True |
'b' not in 'apple' |
示例:
python
fruits = ["apple", "banana", "cherry"]
print("apple" in fruits) # 输出: True
print("orange" not in fruits) # 输出: True
7. 身份运算符
身份运算符用于比较两个对象是否是同一个对象(即它们在内存中的地址是否相同)。
运算符 | 描述 | 示例 |
---|---|---|
is |
如果两个对象是同一个对象则返回 True |
x is y |
is not |
如果两个对象不是同一个对象则返回 True |
x is not y |
示例:
python
x = [1, 2, 3]
y = [1, 2, 3]
print(x is y) # 输出: False (虽然内容相同,但它们是不同的对象)
z = x
print(x is z) # 输出: True (x 和 z 是同一个对象)
# 对于不可变对象,Python 可能会重用相同的对象
a = "hello"
b = "hello"
print(a is b) # 输出: True (Python 优化,字符串常量可能共享同一个对象)
8. 运算符优先级
Python 中的运算符有不同的优先级,决定它们在表达式中先计算哪个部分。以下是从高到低的优先级顺序:
- 括号
()
- 指数
**
- 正负号
+x
,-x
- 乘法、除法、取模、整除
*
,/
,%
,//
- 加法、减法
+
,-
- 位移
<<
,>>
- 按位与
&
- 按位异或
^
- 按位或
|
- 比较运算符
==
,!=
,>
,<
,>=
,<=
- 身份运算符
is
,is not
- 成员运算符
in
,not in
- 逻辑非
not
- 逻辑与
and
- 逻辑或
or
- 赋值运算符
=
,+=
,-=
,*=
,/=
,//=
,%=
,**=
示例:
python
x = 10 + 3 * 2 # 先计算乘法,再加法
print(x) # 输出: 16
y = (10 + 3) * 2 # 先计算括号内的加法,再乘法
print(y) # 输出: 26