算术运算符 #

算术运算符用于执行数学运算,是最基本的运算符类型。

一、基本算术运算符 #

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