1. 程式人生 > >Python(八)之函數

Python(八)之函數

列表 應該 聚合 作用 接收 求階乘 問題 mage 函數式編程

Python函數

技術分享

函數作用:

(1)代碼重用

(2)一種設計工具,分解復雜問題

(3)將相關功能打包並參數化

函數種類:

全局函數:定義在模塊中

局部函數:嵌套在其他函數中

lambda函數:表達式

方法:與特定數據類型關聯的函數,並且只能與數據類型關聯一起使用(定義在類中的函數)

內置函數

技術分享

技術分享

技術分享

Python閉包:

技術分享

技術分享

可變參數解包:個數必須要匹配

技術分享

技術分享

lambda表達式

技術分享

技術分享

技術分享

函數式編程

技術分享

技術分享

技術分享

filter內置函數

技術分享

技術分享

技術分享

技術分享

技術分享

reduce實現折疊

技術分享

Python閉包:閉包叫lexical closure(詞法閉包),外層給內層函數提供一個運行環境

技術分享

yield生成器

函數中誰用yeild,會返回一個生成器對象。

技術分享

裝飾器:實現函數代碼重用

1、 本身是一個函數,用於裝飾其他函數;

2、 功能:增強被裝飾函數的功能;

裝飾器一般接受一個函數對象作為參數,以對其進行增強

技術分享

遞歸:函數調用自身

遞歸需要邊界條件,遞歸前進段和遞歸返回段

技術分享

函數的設計規範:

耦合性:

(1) 通過參數接收輸入,通過return產生輸出以及保證函數的獨立性

(2) 盡量減少使用去哪聚變量進行函數間通信

(3) 不在函數中修改可變類型的參數;

(4) 避免直接改變定義在另外一個模塊中的變量;

聚合性:

(1) 每個函數都應該有一個單一的、統一的目標;

(2) 每個函數的功能都應該相對簡單

技術分享

練習1:將/etc/passwd文件中的每一行都分割為一個列表

練習2:將任意文件按用戶指定的分隔符把每一行都分割為一個列表

練習3:用折疊的方式(reduce)求階乘

練習4:返回/etc/passwd中包含了/bin/bash字符串的所有用戶名列表

1、記得關閉:f1.close()

技術分享

2、記得關閉:f1.close()

技術分享

3、

技術分享

4、

技術分享

或者使用filter:

技術分享

技術分享

Python(八)之函數