算术运算符 #
算术运算符用于执行数学运算,是最基本的运算符类型。
一、基本算术运算符 #
1.1 运算符列表 #
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
+ |
加法 | 5 + 3 |
8 |
- |
减法 | 5 - 3 |
2 |
* |
乘法 | 5 * 3 |
15 |
/ |
除法 | 5 / 3 |
1.666... |
// |
整除 | 5 // 3 |
1 |
% |
取余 | 5 % 3 |
2 |
** |
幂运算 | 5 ** 3 |
125 |
+ |
正号 | +5 |
5 |
- |
负号 | -5 |
-5 |
1.2 加法运算 #
python
# 数值加法
print(5 + 3) # 8
print(5.5 + 3.5) # 9.0
print(5 + 3.5) # 8.5(整数和浮点数运算结果是浮点数)
# 字符串拼接
print("Hello" + " " + "World") # "Hello World"
# 列表合并
print([1, 2] + [3, 4]) # [1, 2, 3, 4]
# 元组合并
print((1, 2) + (3, 4)) # (1, 2, 3, 4)
1.3 减法运算 #
python
# 数值减法
print(10 - 3) # 7
print(5.5 - 3.5) # 2.0
# 负数
print(-5) # -5
print(5 - 10) # -5
# 集合差集
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}
print(set1 - set2) # {1, 2}
1.4 乘法运算 #
python
# 数值乘法
print(5 * 3) # 15
print(5.5 * 2) # 11.0
# 字符串重复
print("Ha" * 3) # "HaHaHa"
print("=" * 10) # "=========="
# 列表重复
print([1, 2] * 3) # [1, 2, 1, 2, 1, 2]
# 元组重复
print((1, 2) * 2) # (1, 2, 1, 2)
# 集合交集
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1 & set2) # {2, 3}(注意:用&不是*)
1.5 除法运算 #
python
# 普通除法(总是返回浮点数)
print(10 / 3) # 3.3333333333333335
print(10 / 2) # 5.0(即使整除也是浮点数)
print(10.0 / 2) # 5.0
# 除以零
# print(10 / 0) # ZeroDivisionError
二、整除运算符 #
2.1 基本用法 #
python
# 整除(向下取整)
print(10 // 3) # 3
print(10 // 4) # 2
print(10 // 2) # 5
# 浮点数整除
print(10.5 // 3) # 3.0(结果是浮点数)
print(10 // 3.5) # 2.0
2.2 负数的整除 #
python
# 整除向负无穷方向取整
print(10 // 3) # 3
print(-10 // 3) # -4(不是-3!)
print(10 // -3) # -4
print(-10 // -3) # 3
# 理解:整除的结果是不大于精确结果的最大整数
# -10 / 3 ≈ -3.33,不大于-3.33的最大整数是-4
2.3 整除与取余的关系 #
python
# 关系:a = (a // b) * b + a % b
a, b = 10, 3
print(a // b) # 3
print(a % b) # 1
print(a == (a // b) * b + a % b) # True
# 负数的情况
a, b = -10, 3
print(a // b) # -4
print(a % b) # 2
print(a == (a // b) * b + a % b) # True
三、取余运算符 #
3.1 基本用法 #
python
# 取余(取模)
print(10 % 3) # 1
print(10 % 4) # 2
print(10 % 2) # 0
# 浮点数取余
print(10.5 % 3) # 1.5
print(10 % 3.5) # 3.0
3.2 负数的取余 #
python
# 取余结果的符号与除数相同
print(10 % 3) # 1
print(-10 % 3) # 2
print(10 % -3) # -2
print(-10 % -3) # -1
3.3 取余的应用 #
python
# 判断奇偶
def is_even(n):
return n % 2 == 0
print(is_even(4)) # True
print(is_even(5)) # False
# 循环计数
for i in range(10):
if i % 3 == 0:
print(f"{i} 是3的倍数")
# 获取最后一位数字
num = 12345
last_digit = num % 10 # 5
# 时间转换
total_seconds = 3725
minutes = total_seconds // 60
seconds = total_seconds % 60
print(f"{minutes}分{seconds}秒") # 62分5秒
# 循环索引
items = ['a', 'b', 'c']
for i in range(10):
print(items[i % 3], end=' ') # a b c a b c a b c a
四、幂运算符 #
4.1 基本用法 #
python
# 幂运算
print(2 ** 3) # 8(2的3次方)
print(2 ** 10) # 1024
print(5 ** 2) # 25
# 负指数
print(2 ** -1) # 0.5
print(4 ** -0.5) # 0.5(即 1/√4)
# 分数指数
print(4 ** 0.5) # 2.0(即 √4)
print(8 ** (1/3)) # 2.0(即 ∛8)
# 零指数
print(5 ** 0) # 1
print(0 ** 0) # 1(Python约定)
4.2 pow()函数 #
python
# pow()函数与**等价
print(pow(2, 3)) # 8
print(pow(2, 10)) # 1024
# 三参数形式:pow(x, y, z) = (x ** y) % z
print(pow(2, 10, 1000)) # 24
# 等价于 (2 ** 10) % 1000
# 用于大数运算更高效
print(pow(2, 1000, 17)) # 快速计算
4.3 幂运算的结合性 #
python
# 幂运算是右结合的
print(2 ** 3 ** 2) # 512(等价于 2 ** (3 ** 2) = 2 ** 9)
# 不是 (2 ** 3) ** 2 = 8 ** 2 = 64
# 建议使用括号明确意图
print((2 ** 3) ** 2) # 64
print(2 ** (3 ** 2)) # 512
五、一元运算符 #
5.1 正号和负号 #
python
# 正号(基本无实际作用)
x = 5
print(+x) # 5
print(+(-5)) # -5
# 负号
x = 5
print(-x) # -5
print(-(-5)) # 5
# 与表达式结合
a = 10
print(-a + 5) # -5
print(-(a + 5)) # -15
六、运算符优先级 #
6.1 算术运算符优先级 #
从高到低:
| 优先级 | 运算符 | 描述 |
|---|---|---|
| 1 | ** |
幂运算 |
| 2 | +x, -x |
正号、负号 |
| 3 | *, /, //, % |
乘、除、整除、取余 |
| 4 | +, - |
加法、减法 |
python
# 优先级示例
result = 2 + 3 * 4 ** 2
# 计算顺序:
# 1. 4 ** 2 = 16
# 2. 3 * 16 = 48
# 3. 2 + 48 = 50
print(result) # 50
# 负号与幂运算
print(-2 ** 2) # -4(等价于 -(2 ** 2))
print((-2) ** 2) # 4
6.2 使用括号 #
python
# 使用括号明确优先级
result = (2 + 3) * 4 ** 2
# 1. 2 + 3 = 5
# 2. 4 ** 2 = 16
# 3. 5 * 16 = 80
print(result) # 80
# 复杂表达式
result = ((2 + 3) * 4) ** 2
print(result) # 400
七、复合赋值运算符 #
7.1 基本用法 #
python
x = 10
# 加法赋值
x += 5 # x = x + 5
print(x) # 15
# 减法赋值
x -= 3 # x = x - 3
print(x) # 12
# 乘法赋值
x *= 2 # x = x * 2
print(x) # 24
# 除法赋值
x /= 4 # x = x / 4
print(x) # 6.0
# 整除赋值
x //= 2 # x = x // 2
print(x) # 3.0
# 取余赋值
x %= 2 # x = x % 2
print(x) # 1.0
# 幂赋值
x **= 3 # x = x ** 3
print(x) # 1.0
7.2 字符串和列表 #
python
# 字符串
s = "Hello"
s += " World"
print(s) # "Hello World"
# 列表
items = [1, 2]
items += [3, 4]
print(items) # [1, 2, 3, 4]
# 注意:这会创建新对象吗?
# 可变类型(列表)会在原对象上修改
# 不可变类型(字符串、元组)会创建新对象
八、数学函数 #
8.1 内置函数 #
python
# 绝对值
print(abs(-5)) # 5
print(abs(-3.14)) # 3.14
# 最大值和最小值
print(max(1, 5, 3)) # 5
print(min(1, 5, 3)) # 1
# 幂运算
print(pow(2, 3)) # 8
# 四舍五入
print(round(3.5)) # 4
print(round(3.4)) # 3
print(round(3.14159, 2)) # 3.14
# 求和
print(sum([1, 2, 3, 4, 5])) # 15
8.2 math模块 #
python
import math
# 常量
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
# 向上取整和向下取整
print(math.ceil(3.2)) # 4
print(math.floor(3.8)) # 3
# 平方根
print(math.sqrt(16)) # 4.0
# 对数
print(math.log(10)) # 自然对数
print(math.log10(100)) # 以10为底的对数
# 三角函数
print(math.sin(math.pi / 2)) # 1.0
print(math.cos(0)) # 1.0
九、常见陷阱 #
9.1 浮点数精度 #
python
# 浮点数精度问题
print(0.1 + 0.2) # 0.30000000000000004
print(0.1 + 0.2 == 0.3) # False
# 使用decimal处理
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2')) # 0.3
9.2 整数除法 #
python
# Python 3中/总是返回浮点数
print(10 / 2) # 5.0(不是5)
# 如果需要整数结果,使用//
print(10 // 2) # 5
9.3 负数取余 #
python
# 负数取余的结果可能与预期不同
print(-10 % 3) # 2(不是-1)
# 这是因为 -10 = (-4) * 3 + 2
十、总结 #
| 运算符 | 名称 | 示例 | 说明 |
|---|---|---|---|
+ |
加法 | a + b |
数值相加,序列拼接 |
- |
减法 | a - b |
数值相减,集合差集 |
* |
乘法 | a * b |
数值相乘,序列重复 |
/ |
除法 | a / b |
总是返回浮点数 |
// |
整除 | a // b |
向下取整 |
% |
取余 | a % b |
结果符号与除数相同 |
** |
幂运算 | a ** b |
右结合 |
最后更新:2026-03-16