多一层缩进精减参数传递,参数少平铺书代码写更佳。
笔记模板由python脚本于2025-04-16 11:52:53创建,本篇笔记适合喜欢子函数嵌套结构代码形式的coder翻阅。
博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。
-
Python官网:
这里,才 python 前沿。英文原版,原汁原味,才是寻根溯源的正统。😎
地址:https://www.python.org/ -
Free:
大咖免费“圣级”秘笈《 python 完全自学教程》不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间,总是比在学校学习的时间长;没有老师的时候总是比有老师的时候多。
—— 华罗庚
-
您,可以在评论区书写任何想法 -
(我将在看到的第一时间回应) -
(预置空地)

本文质量分:
本文地址: https://blog.csdn.net/m0_57158496/article/details/147274345
CSDN质量分查询入口:http://www.csdn.net/qc
目 录
- ◆ 子函数嵌套的意义
- 前言
- 一、什么是子函数嵌套?
- 二、颜色排序题目回顾
- 2.1 ai原址修改代码示例
- 1. ai原址修改代码示例
- 三、为什么选择子函数嵌套?
- 1. 提高代码复用性
- 2. 保持主函数简洁
- 3. 自然引用主函数变量
- 四、子函数嵌套示例
- 五、子函数嵌套的注意事项
- 六、总结
- 完整源码(Python)
◆ 子函数嵌套的意义
前言
在编程的世界里,代码的书写形式千变万化,但每一种形式都有其独特的意义和用途。今天,我想和大家分享一种特别的代码书写形式——子函数嵌套,并通过“颜色排序”这一经典题目来阐述其意义。
一、什么是子函数嵌套?
子函数嵌套,顾名思义,就是在一个函数内部定义另一个函数。这种写法在Python等支持嵌套函数的语言中非常常见。嵌套的子函数可以访问其外部函数的变量,这种特性称为闭包。
二、颜色排序题目回顾
题目截屏图
首先,让我们回顾一下“颜色排序”题目。给定一个数组,其中包含三种颜色(用0、1、2表示),要求将数组中的颜色按照0、1、2的顺序排序。
2.1 ai原址修改代码示例
#!/sur/bin/nve python3
# ai代码示例 # “智普清言”
def sort_colors(nums):
# 统计每种颜色出现的次数
count = [0, 0, 0]
for num in nums:
count[num] += 1
# 根据颜色出现次数重新填充列表
index = 0
for color in range(3):
while count[color] > 0:
nums[index] = color
index += 1
count[color] -= 1
# for循环 # 原址修改
def sort_colors2(nums):
# 根据颜色出现次数重新填充列表
start = 0
for color,n in zip(range(3), [nums.count(i) for i in range(3)]):
for i in range(n):
nums[start] = color
start += 1
# 算法逻辑优化 # 新新建数组
def sort_colors3(nums):
# 根据颜色出现次数重新填充列表
return sum([[color]*n for color,n in zip(range(3), [nums.count(i) for i in range(3)])], []) # 直接根据统计颜色数重建颜色排序list
# 示例
if __name__ == '__main__':
nums = [2, 0, 2, 1, 1, 0]
sort_colors(nums) # 原址修改
print(nums) # 输出应该是 [0, 0, 1, 1, 2, 2]
nums = [2, 0, 2, 1, 1, 0]
sort_colors2(nums) # 原址修改
print(nums) # 输出应该是 [0, 0, 1, 1, 2, 2]
print(sort_colors3(nums))
1. ai原址修改代码示例
三、为什么选择子函数嵌套?
在解决颜色排序问题时,我们可能会遇到需要复用某段代码的情况。这时,子函数嵌套就派上用场了。
1. 提高代码复用性
通过将重复的代码段抽象成子函数,我们可以避免在主函数中重复书写相同的代码,从而提高代码的复用性。
2. 保持主函数简洁
子函数嵌套可以让主函数更加简洁和清晰。主函数只需要关注整体的逻辑流程,而具体的实现细节则可以交给子函数去处理。
3. 自然引用主函数变量
子函数可以自然引用主函数中的变量,无需通过参数传递。这大大减少了函数参数的个数,使得代码更加简洁。
四、子函数嵌套示例
下面,我们以颜色排序为例,展示子函数嵌套的实践。
五、子函数嵌套的注意事项
虽然子函数嵌套有很多优点,但也有一些需要注意的地方:
- 缩进层次:嵌套函数会增加缩进层次,过多的缩进可能会影响代码的可读性。
- 作用域限制:子函数的作用域仅限于其外部函数内部,不能在其他地方直接调用。
六、总结
子函数嵌套是一种非常有用的代码书写形式。它不仅可以提高代码的复用性和可读性,还可以让主函数更加简洁和清晰。在解决复杂问题时,合理运用子函数嵌套可以大大简化代码结构。
希望通过这篇文章,大家能够更好地理解子函数嵌套的意义,并在实际编程中灵活运用这一技巧。让我们一起写出更优雅、更高效的代码吧!
完整源码(Python)
上一篇:
编程逻辑解谜“0000(打一成语)“:当码农遇上汉字游戏(解谜)
我的HOT博:
本次共计收集449篇博文笔记信息,总阅读量70.99w。数据采集于2025年03月17日 00:27:47,用时10分46.1秒。阅读量不小于6.00k的有
10
10
10篇。
- 让QQ群昵称色变的神奇代码
地址:https://blog.csdn.net/m0_57158496/article/details/122566500
浏览阅读:63,055
点赞:25 收藏:90 评论:17
(本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)
- Python列表(list)反序(降序)的7种实现方式
地址:https://blog.csdn.net/m0_57158496/article/details/128271700
浏览阅读:14,196
点赞:9 收藏:40 评论:8
(本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)
- 个人信息提取(字符串)
地址:https://blog.csdn.net/m0_57158496/article/details/124244618
浏览阅读:10,461
点赞:3 收藏:21
(本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)
- pandas 数据类型之 DataFrame
地址:https://blog.csdn.net/m0_57158496/article/details/124525814
浏览阅读:10,358
点赞:7 收藏:40
(本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)
- 统计字符串字符出现的次数
地址:https://blog.csdn.net/m0_57158496/article/details/130517025
浏览阅读:8,535
点赞:5 收藏:27
(本篇笔记于2023-05-06 22:28:18首次发布,最后修改于2023-05-12 06:21:40)
- 罗马数字转换器|罗马数字生成器
地址:https://blog.csdn.net/m0_57158496/article/details/122592047
浏览阅读:8,393
收藏:3
(本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)
- Python字符串居中显示
地址:https://blog.csdn.net/m0_57158496/article/details/122163023
浏览阅读:8,190
点赞:1 收藏:12 评论:1
- 回车符、换行符和回车换行符
地址:https://blog.csdn.net/m0_57158496/article/details/123109488
浏览阅读:6,921
点赞:2 收藏:4
(本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)
- python清屏
地址:https://blog.csdn.net/m0_57158496/article/details/120762101
浏览阅读:6,282
点赞:1 收藏:10
- 我的 Python.color() (Python 色彩打印控制)
地址:https://blog.csdn.net/m0_57158496/article/details/123194259
浏览阅读:6,192
点赞:2 收藏:9
(本篇笔记于2022-02-28 22:46:21首次发布,最后修改于2022-03-03 10:30:03)
截屏图片
(此文涉及ChatPT,曾被csdn多次下架,前几日又因新 发笔记被误杀而落马。躺“未过审”还不如回收站 ,回收站还不如永久不见。😪值此年底清扫,果 断移除。留此截图,以识“曾经”。2023-12-31)

精品文章:
- 好 文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永 久分享,点击跳转 免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置 对象理解python
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
◆ Python 入门指南 【Python 3.6.3】
好文力 荐:
- 全栈领域优质创作者——[寒 佬]博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
- 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
- 靠谱程序员的好习惯
- 大佬帅地的优质好文“函 数功能、结束条件、函数等价式”三大要素让您认清递归
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代 码编写规范
- Python的docstring规范(说明文档的规范写法)