Python3 内置函数(超详细)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
在 Python 编程的世界中,内置函数(Built-in Functions)如同一把钥匙,能够帮助开发者快速打开高效编程的大门。这些由 Python 解释器直接支持的函数,无需额外导入即可直接调用,覆盖了从基础操作到复杂逻辑的广泛场景。无论是初学者构建第一个脚本,还是中级开发者优化代码结构,掌握 Python3 内置函数的核心功能与使用技巧,都是提升开发效率的关键一步。本文将通过系统化的分类讲解、生动的比喻和实际案例,带读者深入理解这些“隐形工具箱”中的宝藏。
一、基础操作类函数:构建编程的最小单元
1.1 测量与计数:len()
、sum()
与min()
/max()
想象你是一位仓库管理员,需要快速统计库存数量、计算总价值或找出最贵的商品。Python 的 len()
、sum()
、min()
和 max()
函数,正是这样的“测量工具”。
-
len()
:返回对象的元素数量,适用于字符串、列表、元组等可迭代对象。text = "Hello Python" print(len(text)) # 输出 12 numbers = [1, 2, 3, 4] print(len(numbers)) # 输出 4
-
sum()
:对可迭代对象中的数值元素求和,可设置初始值(start
)。numbers = [5, 7, 3] print(sum(numbers)) # 输出 15 print(sum(numbers, 10)) # 输出 25(10+5+7+3)
-
min()
/max()
:返回可迭代对象中的最小值或最大值,或多个参数中的极值。print(min(10, 20, 30)) # 输出 10 print(max([5, 2, 8, 1])) # 输出 8
比喻:sum()
好比会计的计算器,min()
/max()
则是仓库中的“标尺”,快速定位关键数值。
1.2 数据转换与类型控制:int()
、float()
、str()
这些函数如同“翻译官”,帮助不同数据类型之间进行安全转换:
-
int()
:将字符串或浮点数转换为整数。num_str = "42" num_int = int(num_str) print(num_int + 5) # 输出 47
-
float()
:将字符串或整数转换为浮点数。num_str = "3.14" num_float = float(num_str) print(num_float * 2) # 输出 6.28
-
str()
:将其他类型转换为字符串,常用于日志记录或格式化输出。age = 25 print("用户年龄:" + str(age)) # 输出 "用户年龄:25"
注意事项:强制类型转换需确保数据格式兼容,否则会抛出 ValueError
。例如,int("3.14")
会引发错误。
二、迭代与函数式编程:map()
、filter()
与lambda
表达式
2.1 数据流水线:map()
与filter()
的协同工作
map()
函数如同工厂流水线的“加工站”,对可迭代对象中的每个元素执行指定函数:
def square(x):
return x ** 2
numbers = [1, 2, 3, 4]
squared = map(square, numbers)
print(list(squared)) # 输出 [1, 4, 9, 16]
filter()
则是“筛选器”,根据条件函数过滤元素:
def is_even(x):
return x % 2 == 0
filtered = filter(is_even, [1, 2, 3, 4, 5])
print(list(filtered)) # 输出 [2, 4]
结合 lambda
简化代码:
squared = map(lambda x: x**2, [1, 2, 3])
filtered = filter(lambda x: x > 2, [1, 3, 5])
比喻:map()
是流水线上的机器人,filter()
是质检员,而 lambda
是即插即用的“临时指令”。
2.2 排序与键值操作:sorted()
与reversed()
sorted()
函数如同整理书架的助手,返回排序后的新列表:
numbers = [5, 1, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出 [1, 3, 5]
print(sorted(numbers, reverse=True)) # 输出 [5, 3, 1]
fruits = ["apple", "banana", "cherry"]
sorted_fruits = sorted(fruits, key=lambda x: len(x))
print(sorted_fruits) # 输出 ["apple", "cherry", "banana"]
reversed()
则是“时光倒流器”,返回逆序迭代器:
original = [1, 2, 3]
reversed_iter = reversed(original)
print(list(reversed_iter)) # 输出 [3, 2, 1]
三、进阶技巧与常见场景应用
3.1 错误处理与调试:assert()
与help()
assert()
是代码的“安全哨兵”,用于快速验证条件是否成立:
def divide(a, b):
assert b != 0, "除数不能为零"
return a / b
divide(10, 0)
help()
函数如同“在线文档助手”,提供函数或模块的详细说明:
help(sorted)
3.2 高级函数组合:zip()
与enumerate()
zip()
将多个可迭代对象“打包”为元组列表,常用于合并数据:
names = ["Alice", "Bob"]
ages = [25, 30]
zipped = zip(names, ages)
print(list(zipped)) # 输出 [('Alice', 25), ('Bob', 30)]
enumerate()
为可迭代对象添加索引,简化循环操作:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(f"第{index}个水果是:{fruit}")
四、实战案例:综合运用内置函数优化代码
假设需要统计一段文本中每个单词的出现次数,并按频率排序输出:
text = """Python is an interpreted high-level general-purpose programming language. Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including structured, object-oriented, and functional programming."""
words = text.lower().split()
from collections import defaultdict
word_count = defaultdict(int)
for word in words:
word_count[word] += 1
sorted_words = sorted(
word_count.items(),
key=lambda x: (-x[1], x[0]) # 先按频率降序,再按字母升序
)
for word, count in sorted_words:
print(f"{word}: {count}")
关键内置函数应用:
split()
分割字符串defaultdict
(来自collections
模块,但底层依赖内置字典逻辑)sorted()
的key
参数实现多条件排序
五、总结与进阶建议
Python3 内置函数如同程序员的“瑞士军刀”,涵盖基础操作、数据处理、类型转换及高级编程范式。本文通过分类讲解与实战案例,展示了如何利用这些函数简化代码、提升效率。对于初学者,建议从常用函数(如 len()
、map()
)入手,逐步深入;中级开发者则可探索 zip()
、enumerate()
等函数在复杂场景中的组合应用。
持续学习方向:
- 掌握
globals()
、locals()
等元编程相关函数 - 学习
eval()
、exec()
的安全使用场景 - 研究
functools
模块与内置函数的协同优化
通过系统性地理解和实践这些工具,开发者能够更自信地应对从脚本编写到大型项目开发的多样化需求,真正发挥 Python“高效简洁”的语言优势。