Python(八)之函數

來源:互聯網
上載者:User

標籤:需要   嵌套   yield   產生   使用   分割   複雜   彙總   closure   

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(八)之函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.