python學習手冊筆記 16 函式基礎

2022-08-19 14:51:11 字數 1858 閱讀 9302

00.乙個函式就是將一些語句集合再儀器的部件,它們能夠不止一次地再程式中執行。函式還能夠計算出乙個返回值,並能夠改變作為函式輸入的引數,而這些引數再**執行時也許每次都不相同。函式時python為了**最大程度的重用和最小化**冗餘而提供的最基本的程式結構。

01.函式相關的語句和表示式

calls myfunc("spam", "eggs", meat=ham)

def def adder(a, b = 1, *c):

return return a+b+c[0]

global def changer(): global x; x = 'new'

nonlocal def changer(): nonlocal x; x = 'new'

yield def squares(x): for i in range(x): yield i ** 2

lambda funcs = [lambda x : x**2, lambda x:x*3]

02.為何使用函式:

*最大化的**重用和最小化**冗餘:python的函式時一種簡單的辦法去打包邏輯演算法,使其能夠再之後不止在意出、不止一次地使用。

*流程的分解:函式也提供了一種將乙個系統分割為定義完好的不同部分的工具。

03.編寫函式

*def是可執行的**。python的函式是由乙個新的

*def建立了乙個物件並將其賦值給某一變數名。當python執行到def語句時,它將會生成乙個新的函式物件並將其賦值給這個函式名。

*lambda建立乙個物件但將其作為結果返回。這一功能允許我們把函式定義內聯到語法上一條def語句不能工作的滴地方

*return將乙個結果物件傳送給呼叫者。當函式被呼叫時,其呼叫者停止執行直到這個函式完成了它的工作,之後函式才將控制全返**用者。函式時通過return語句將計算得到的值傳遞給呼叫者的,返回值稱為函式呼叫的結果。

*yield向呼叫者發回乙個結果物件,但記住它離開的地方。像生成器這樣的函式也可以通過yiled語句來返回值,並掛起它們的狀態以便稍後能夠恢復狀態。

*global宣告了乙個模組級的變數並被賦值。

*nonlocal宣告了將要賦值的乙個封閉的函式變數。nonlocal語句允許乙個函式來賦值一條語法封閉的def語句的作用域中已有的名稱。這就是允許封閉的函式作為保留狀態的乙個地方——當乙個函式呼叫的時候,資訊被記住了——而不必使用共享的全域性名稱。

*函式是通過賦值(物件引用)傳遞的。

*引數、返回值以及變數並不是宣告。

04.def語句將建立乙個函式物件並將其賦值給乙個變數名。def的首行定義了函式名,賦值給函式物件。

def (arg1, arg2,... argn):

05.函式僅僅是物件,在程式執行時它清楚地記錄在記憶體之中。實際上,除了呼叫以外,函式允許任意屬性附加到記錄資訊以龔隨後使用。

06.函式描繪了兩個方面:定義(def建立了乙個函式)以及呼叫(表示式高數python去執行函式主體)。

def times(x,y): return x * y

當python執行到這裡並執行了def語句時,它將會建立乙個新的函式物件,封裝這個函式的**並將這個物件賦值給變數名times。

07.這種依賴型別的行為稱為墮胎,其含義就是乙個操作的意義取決於被操作物件的型別。因為python是動態型別語言,所以多型在python中隨處可見。

08.在python中,**不應該關心特定的資料型別。如果不是這樣,那麼**將指對編寫時你所關心的那些型別有效,對以後的那些可能編寫的相容物件型別並不支援,這樣會打亂**的靈活性。大體上來說,我們在python中為物件白那些介面,而不是資料型別。

09.intersect函式中的res變數在python中叫做本地變數——這個變數只是在def內的函式中時可見的,並且僅在函式執行時存在的。

Python全棧學習筆記day 16 匿名函式

匿名函式 為了解決那些功能很簡單的需求而設計的一句話函式 這段 def calc n return n n print calc 10 換成匿名函式 下面給出了乙個關於匿名函式格式的說明 函式名 lambda 引數 返回值 引數可以有多個,用逗號隔開 匿名函式不管邏輯多複雜,只能寫一行,且邏輯執行結...

Python 學習筆記 enumerate函式

enumerate 函式用於將乙個可遍歷的資料物件 如列表 元組或字串 組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。seasons spring summer fall winter list enumerate seasons 0,spring 1,summer 2,f...

Python學習筆記 16

自己總結的 遞迴就是將大的問題分解為相同的小問題,方法內重複呼叫自己 求10的階乘 10 deffactorial n for迴圈方法 result n for i in range 1 n result i return result n 4 print factorial n 遞迴就是將大的問題...