📌 写在前面Python 内置函数共 69 个,本文将按功能分类,介绍第一类:数学运算类。这类函数是 Python 进行数值计算的基础工具,掌握它们能让数据处理更高效。🎯 数学运算类函数总览
| | |
|---|
abs() | | abs(x) |
divmod() | | divmod(a, b) |
max() | | max(iterable) |
min() | | min(iterable) |
pow() | | pow(x, y) |
round() | | round(number[, ndigits]) |
sum() | | sum(iterable[, start]) |
1️⃣ abs(x) — 求绝对值
语法详解
参数:x — 整数、浮点数或复数。
返回值:x 的绝对值。
整数/浮点数:返回非负数值。
复数:返回模(浮点数)。
代码示例
# 整数和浮点数print(abs(-5)) # 输出: 5print(abs(3.14)) # 输出: 3.14# 复数(模 = √(实部² + 虚部²))print(abs(3+4j)) # 输出: 5.0# 实际应用:计算两点距离a, b = -10, 20 == (a = -10, b = 20)d = abs(abs(a) - abs(b)) #在不知道A/B的值是否都为正时 可以先把两个值都先转化成正值,再计算print(f"距离: {d}") # 输出: 距离: 30
2️⃣ divmod(a, b) — 求商和余数
语法详解
代码示例
# 基本用法result = divmod(10, 3)print(result) # 输出: (3, 1)# 解包赋值q, r = divmod(17, 5) # divmod(a, b) 得到的值的类型为tupleprint(f"17 ÷ 5 = {q} 余 {r}") # 输出: 17 ÷ 5 = 3 余 2# 实际应用:秒数转换total_seconds = 125minutes, 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']}") # 输出: 第一名: 小红
4️⃣ min() — 求最小值
语法详解
调用方式与 max() 完全相同。
功能相反,返回最小值。
代码示例
# 基本用法print(min(5, 10, 3)) # 输出: 3print(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() — 幂运算
语法详解
代码示例
# 基本幂运算print(pow(2, 3)) # 输出: 8print(pow(5, 2)) # 输出: 25# 带模数的幂运算base, exp, mod = 7, 8, 13result1 = (7 ** 8) % 13result2 = pow(7, 8, 13) # 效率更高print(result1, result2) # 输出: 9 9# 实际应用:密码学中常用print(pow(3, 200, 50)) # 输出: 1
6️⃣ round() — 四舍五入
语法详解
代码示例
# 基本用法print(round(3.14159)) # 输出: 3print(round(3.14159, 2)) # 输出: 3.14# 负数ndigits(向左四舍五入)print(round(1234, -1)) # 输出: 1230print(round(1264, -2)) # 输出: 1300# ⚠️ 银行家舍入法print(round(2.5)) # 输出: 2 (不是3!)print(round(3.5)) # 输出: 4print(round(2.675, 2)) # 输出: 2.67 (浮点精度问题)# 实际应用:价格计算price, tax_rate = 19.99, 0.0825total = 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() | |
pow() | |
round() | |
sum() | |
✅ 易错点提醒
round(2.5) 返回 2 不是3 — 银行家舍入法。
sum() 不能用于字符串拼接 — 请用 ''.join()。
divmod() 的除数不能为0。
pow(x, y, z) 的 z 必须为整数。
max() 对空序列要设置 default 参数。
📚 下期预告:数据类型转换类(基础篇)