多一層縮進精減參數傳遞,參數少平鋪書代碼寫更佳。
??筆記模板由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 = 0for color in range(3):while count[color] > 0:nums[index] = colorindex += 1count[color] -= 1# for循環 # 原址修改
def sort_colors2(nums):# 根據顏色出現次數重新填充列表start = 0for color,n in zip(range(3), [nums.count(i) for i in range(3)]):for i in range(n):nums[start] = colorstart += 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規范(說明文檔的規范寫法)