在编程中,运算符(Operators) 是用于对变量和值执行操作的特殊符号。Python 提供了丰富的运算符种类,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等,这些运算符是编写程序时进行数据处理和逻辑判断的基础。
掌握 Python 中的各类运算符及其使用方法,对于理解程序逻辑、提升代码效率至关重要。
本文将带你深入了解:
无论你是刚入门 Python 的新手,还是希望巩固基础的老手,这篇文章都将为你提供实用的知识点!
运算符是一种特殊的符号,用来对一个或多个操作数(Operands)执行特定的操作。
例如:
a = 5 + 3
在这个表达式中:
+
是运算符;5
和 3
是操作数;8
;根据功能不同,Python 中的运算符可以分为以下几类:
类型 | 描述 |
---|---|
算术运算符 | 执行基本数学运算(加减乘除等) |
比较(关系)运算符 | 比较两个值之间的大小关系 |
赋值运算符 | 将值赋给变量 |
逻辑运算符 | 对布尔值进行逻辑操作(与、或、非) |
成员运算符 | 判断某个元素是否属于集合 |
身份运算符 | 判断两个对象是否指向同一内存地址 |
位运算符 | 对整数进行按位操作 |
运算符 | 名称 | 示例 | 结果 |
---|---|---|---|
+ |
加法 | 2 + 3 |
5 |
- |
减法 | 5 - 2 |
3 |
* |
乘法 | 4 * 3 |
12 |
/ |
除法(浮点) | 10 / 3 |
3.333... |
// |
整除 | 10 // 3 |
3 |
% |
取模(取余) | 10 % 3 |
1 |
** |
幂运算 | 2 ** 3 |
8 |
print(2 + 3) # 输出:5
print(10 / 3) # 输出:3.333...
print(10 // 3) # 输出:3
print(10 % 3) # 输出:1
print(2 ** 3) # 输出:8
注意:
/
返回的是浮点结果;//
只返回商的整数部分;%
常用于判断奇偶、循环索引等场景;比较运算符用于比较两个值的大小关系,返回布尔值(True 或 False)。
运算符 | 名称 | 示例 | 结果 |
---|---|---|---|
== |
等于 | 5 == 5 |
True |
!= |
不等于 | 5 != 3 |
True |
> |
大于 | 6 > 3 |
True |
< |
小于 | 2 < 4 |
True |
>= |
大于等于 | 5 >= 5 |
True |
<= |
小于等于 | 3 <= 2 |
False |
x = 10
y = 5
print(x > y) # True
print(x == y) # False
print(y < x) # True
注意:
赋值运算符用于将值赋给变量。
运算符 | 等价表达式 | 示例 |
---|---|---|
= |
a = b |
a = 5 |
+= |
a = a + b |
a += 3 |
-= |
a = a - b |
a -= 2 |
*= |
a = a * b |
a *= 4 |
/= |
a = a / b |
a /= 2 |
//= |
a = a // b |
a //= 3 |
%= |
a = a % b |
a %= 5 |
**= |
a = a ** b |
a **= 2 |
a = 10
a += 5 # 等价于 a = a + 5
print(a) # 输出:15
推荐使用复合赋值操作简化代码书写。
逻辑运算符用于组合多个条件表达式。
运算符 | 功能 | 示例 | 结果 |
---|---|---|---|
and |
与(全为真才为真) | True and False |
False |
or |
或(有一个为真即为真) | True or False |
True |
not |
非(取反) | not True |
False |
age = 20
gender = 'male'
if age > 18 and gender == 'male':
print("符合条件")
else:
print("不符合条件")
注意:
and
和 or
具有短路特性;not
常用于判断空值、反转布尔值;用于判断某个元素是否存在于可迭代对象中(如字符串、列表、元组、字典等)。
运算符 | 功能 | 示例 | 结果 |
---|---|---|---|
in |
是否包含 | 'a' in 'abc' |
True |
not in |
是否不包含 | 'x' not in 'abc' |
True |
fruits = ['apple', 'banana', 'cherry']
print('apple' in fruits) # True
print('grape' not in fruits) # True
常用于筛选、搜索、权限控制等场景。
用于判断两个对象是否引用同一个内存地址。
运算符 | 功能 | 示例 | 结果 |
---|---|---|---|
is |
是否是同一对象 | a is b |
True /False |
is not |
是否不是同一对象 | a is not b |
True /False |
a = [1, 2]
b = a
c = [1, 2]
print(a is b) # True
print(a is c) # False
注意:
==
比较的是值;is
比较的是对象的身份(内存地址);None
时使用 is
;位运算符用于对整数的二进制形式进行操作。
运算符 | 名称 | 示例 | 说明 |
---|---|---|---|
& |
按位与 | 5 & 3 |
1 |
` | ` | 按位或 | `5 |
^ |
异或 | 5 ^ 3 |
6 |
~ |
取反 | ~5 |
-6 |
<< |
左移 | 5 << 1 |
10 |
>> |
右移 | 5 >> 1 |
2 |
x = 5 # 二进制:0b101
y = 3 # 二进制:0b011
print(x & y) # 0b001 → 1
print(x | y) # 0b111 → 7
print(x ^ y) # 0b110 → 6
位运算常用于底层开发、加密算法、性能优化等场景。
优先级 | 运算符 |
---|---|
1 | () (括号) |
2 | ** (幂) |
3 | ~ , + , - (单目运算) |
4 | * , / , // , % |
5 | + , - (双目运算) |
6 | << , >> |
7 | & |
8 | ^ |
9 | ` |
10 | == , != , > , < , >= , <= |
11 | is , is not , in , not in |
12 | not |
13 | and |
14 | or |
使用括号 ()
可以改变运算顺序,提高代码可读性。
score = int(input("请输入分数:"))
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
radius = float(input("请输入圆的半径:"))
area = 3.14159 * radius ** 2
print("圆的面积为:", area)
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [n for n in numbers if n % 2 == 0]
print(even_numbers)
name = input("请输入你的名字:")
print("欢迎你," + name + "!")
问题 | 建议 |
---|---|
混淆 == 与 is |
== 比较值,is 比较对象身份 |
忽略类型转换导致错误 | 输入默认是字符串,需手动转换为 int 或 float |
表达式复杂不加括号 | 使用 () 明确运算顺序 |
使用 and /or 时忽略短路特性 |
特别是在函数调用中 |
忽略 not 的作用范围 |
使用括号避免歧义 |
运算符类型 | 常见符号 | 主要用途 |
---|---|---|
算术运算符 | + , - , * , / , // , % , ** |
数学运算 |
比较运算符 | == , != , > , < , >= , <= |
条件判断 |
赋值运算符 | = , += , -= , *= , /= |
变量赋值 |
逻辑运算符 | and , or , not |
组合判断 |
成员运算符 | in , not in |
判断存在性 |
身份运算符 | is , is not |
判断对象身份 |
位运算符 | & , ` |
, ^, ~, <<, >>` |
感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!