Python数学运算内置函数全面解析:从abs到sum的7个核心工具

Python数学运算内置函数全面解析:从abs到sum的7个核心工具

Python 提供了丰富的内置函数,它们是进行高效开发的基础。本文将系统性地介绍第一大类:数学运算类函数。熟练掌握这些工具,能让你的数据处理与数值计算事半功倍。

数学运算类函数总览

函数名

功能

基本语法

abs()

求绝对值

abs(x)

divmod()

求商和余数

divmod(a, b)

max()

求最大值

max(iterable) 或 max(a, b, c...)

min()

求最小值

min(iterable) 或 min(a, b, c...)

pow()

幂运算

pow(x, y) 或 pow(x, y, z)

round()

四舍五入

round(number[, ndigits])

sum()

求和

sum(iterable[, start])

1️⃣ abs(x) — 求绝对值

语法详解

参数:x — 整数、浮点数或复数。

返回值:x 的绝对值。

整数/浮点数:返回非负数值。

复数:返回模(浮点数)。

代码示例

# 整数和浮点数

print(abs(-5)) # 输出: 5

print(abs(3.14)) # 输出: 3.14

# 复数(模 = √(实部² + 虚部²))

print(abs(3+4j)) # 输出: 5.0

# 实际应用:计算两点距离

a, b = -10, 20

d = abs(abs(a) - abs(b)) #在不知道A/B的值是否都为正时 可以先把两个值都先转化成正值,再计算

print(f"距离: {d}") # 输出: 距离: 30

2️⃣ divmod(a, b) — 求商和余数

语法详解

参数:a — 被除数,b — 除数(不能为0)。

返回值:元组 (商, 余数),即 (a // b, a % b)。

代码示例

# 基本用法

result = divmod(10, 3)

print(result) # 输出: (3, 1)

# 解包赋值

q, r = divmod(17, 5) # divmod(a, b) 得到的值的类型为tuple

print(f"17 ÷ 5 = {q} 余 {r}") # 输出: 17 ÷ 5 = 3 余 2

# 实际应用:秒数转换

total_seconds = 125

minutes, seconds = divmod(total_seconds, 60)

print(f"{total_seconds}秒 = {minutes}分{seconds}秒") # 输出: 125秒 = 2分5秒

3️⃣ max() — 求最大值

语法详解

调用方式:

max(iterable, *, default=None, key=None) — 对可迭代对象操作。

max(arg1, arg2, *args, key=None) — 对多个参数操作。

关键参数:

key:指定比较规则的函数。

default:可迭代对象为空时的返回值。

代码示例

# 方式1:多个参数

print(max(5, 10, 3)) # 输出: 10

# 方式2:可迭代对象

numbers = [45, 12, 89, 34]

print(max(numbers)) # 输出: 89

# 使用key参数

students = [

{'name': '小明', 'score': 85},

{'name': '小红', 'score': 92},

{'name': '小刚', 'score': 78}

]

top = max(students, key=lambda s: s['score'])

print(f"第一名: {top['name']}") # 输出: 第一名: 小红

在实际项目中,灵活运用 max() 和 min() 的 key 参数,配合Lambda表达式和列表推导式,是处理复杂数据筛选的常用技巧。

4️⃣ min() — 求最小值

语法详解

调用方式与 max() 完全相同。

功能相反,返回最小值。

代码示例

# 基本用法

print(min(5, 10, 3)) # 输出: 3

print(min([45, 12, 89, 34])) # 输出: 12

# 使用key参数

lowest = min(students, key=lambda s: s['score'])

print(f"最低分: {lowest['name']}") # 输出: 最低分: 小刚

# 找绝对值最小的数

numbers = [-10, 5, -3, 8, -2]

closest = min(numbers, key=abs)

print(f"最接近0的数: {closest}") # 输出: 最接近0的数: -2

5️⃣ pow() — 幂运算

语法详解

调用方式:

pow(x, y) — 计算 x ** y。

pow(x, y, z) — 计算 (x ** y) % z,效率更高。

参数要求:使用三个参数时,z 必须为整数且不能为0。

代码示例

# 基本幂运算

print(pow(2, 3)) # 输出: 8

print(pow(5, 2)) # 输出: 25

# 带模数的幂运算

base, exp, mod = 7, 8, 13

result1 = (7 ** 8) % 13

result2 = pow(7, 8, 13) # 效率更高

print(result1, result2) # 输出: 9 9

# 实际应用:密码学中常用

print(pow(3, 200, 50)) # 输出: 1

6️⃣ round() — 四舍五入

语法详解

参数:

number:要处理的数字。

ndigits:保留的小数位数,默认0(返回整数)。

重要特性:Python 采用 银行家舍入法(round half to even),对 .5 会取最近的偶数。

代码示例

# 基本用法

print(round(3.14159)) # 输出: 3

print(round(3.14159, 2)) # 输出: 3.14

# 负数ndigits(向左四舍五入)

print(round(1234, -1)) # 输出: 1230

print(round(1264, -2)) # 输出: 1300

# ⚠️ 银行家舍入法

print(round(2.5)) # 输出: 2 (不是3!)

print(round(3.5)) # 输出: 4

print(round(2.675, 2)) # 输出: 2.67 (浮点精度问题)

# 实际应用:价格计算

price, tax_rate = 19.99, 0.0825

total = price * (1 + tax_rate)

print(f"含税价: {round(total, 2)}") # 输出: 含税价: 21.64

7️⃣ sum() — 求和

语法详解

参数:

iterable:可迭代对象(列表、元组等)。

start:起始值,默认为0。

返回值:从 start 开始累加所有元素。

代码示例

# 基本求和

numbers = [1, 2, 3, 4, 5]

print(sum(numbers)) # 输出: 15

# 指定起始值

print(sum([1, 2, 3, 4, 5], 10)) # 输出: 25

# 求和范围

print(sum(range(1, 101))) # 输出: 5050

# 实际应用:计算平均值

scores = [85, 92, 78, 90, 88]

average = sum(scores) / len(scores)

print(f"平均分: {average:.2f}") # 输出: 平均分: 86.60

# 使用生成器表达式

sum_of_squares = sum(x**2 for x in numbers)

print(f"平方和: {sum_of_squares}") # 输出: 平方和: 55

核心要点速查表

函数

一句话记法

abs()

求绝对值,复数也能用

divmod()

一次返回商和余数

max()

求最大值,还能自定义规则

min()

求最小值,和 max 对着记

pow()

幂运算,三个参数效率高

round()

四舍五入,.5取偶要记牢

sum()

求和计算,从 start 开始加

⚠️ 易错点提醒

round(2.5) 返回 2 不是3 — 银行家舍入法。

sum() 不能用于字符串拼接 — 请用 ‘’.join()。

divmod() 的除数不能为0。

pow(x, y, z) 的 z 必须为整数。

max() 对空序列要设置 default 参数。

掌握这些数学运算函数是写好 Python 代码的第一步。记得在编写涉及数值计算的代码时,遵循 PEP 8 等规范,能让你的代码更专业、更易维护。想了解更多 Python 核心技巧和深入探讨其他内置函数如数据类型转换等话题,可以持续关注相关技术社区的分享。

相关推荐