函數的定義
函數就是對程序給出的值按照既定的處理指令執行命令並將結果返回的黑箱。
其中函數所處 理的值被稱為參數、函數所返回的結果的值被稱為返回值。
將上文中的函數按Python的方式記述,則會變為如下格式。像這樣將函數的功能記述出來的方式被稱為定義函數。
參數在不必要的時候可以省略
如果要做一個什麼命令都不執行的函數,則用pass。
函數的調用
函數可以用如下的方式調用。在調用時使用的參數被稱為實參,從原則上說要引入和定義時 所指定的參數個數一樣的數量。
如果是不具備參數的函數,則是以下格式。
可以通過使用偽參數的名字來指定其對應的實參。
參數的全局調用
介紹利用雙精度浮點型變量或者字典的特點實現參數的全局調用。
在偽參數前面添加*就可以使參數被賦值到雙精度浮點型變量中。
順便說一下,這個avg函數可以通過利用數學函數中的sum()更簡潔地書寫。
≫將關鍵參數作為字典接收
在偽參數之前加上**就可以將關鍵參數作為字典來接收。
≫將字典展開並接收
將參數作為字典傳遞,若想將傳遞出去的字典在函數側展開後接收參數的話,需要在調用側 的參數前添加 **。
函數的使用技巧
可以給參數規定一個默認值的函數,指定了默認值的函數在被調用時,參數可以省略。
默認參數可以從右側的參數開始設置多個,但是不可以將中間的某個參數作為默認參數。
在函數名的末尾不添加(),只寫名稱的格式所表示的是函數本身。我們將其稱之為函數對象, 可以像值一樣將其代入到變量中去。
我們可以定義函數中的函數。內部的函數被稱為本地函數,只可以在特定的函數中被使用的 函數都可以被認為是本地函數。
無名函數
如果是進行一些簡單的處理的函數,可以使用關鍵字「lambda」來記述,這種寫法可以被稱 作無名函數(lambda函數)。
函數可以將別的函數作為參數使用,被作為參數使用的函數被稱為回調函數。
回調函數的優點是可以在調用的時候決定其處理的內容。不過,這樣就需要定義一個只針對 這一目的的特殊函數。所以,這個時候使用無名函數的話,可以簡化這個記述過程。
變量範圍
在函數內部使用的變量為本地變量,本地變量只在函數內部有效。與之相對,在函數外部使 用的變量為全局變量,全局變量可以在任意函數中調用。
在函數被用於嵌套中時,只在其每一單次的函數調用內有效。
在函數中想要改變其外部的變量的時候需要注意幾個要素,像下圖那樣簡單地記述代入命令 是無法改變外部變量的。
如果想要更改函數外部的變量的話,需要使用global或者nonlocal命令來聲明變量並非本 地變量。
生成器(generator)
生成器是函數的一種。通常,函數只會返回固定的數值,但是如果使用了生成器,便會隨著 調用次數的不同,返回不同的數值。
如果想要使用生成器的話,需要以下幾個步驟:1.需要定義生成器函數;2.需要調用生成器函 數並且初始化;3.將生成器對象作為參數調用next()函數。下文是以0、1、2、3、4的數值 作為順序輸出的範例。
前一頁所提到的生成器的定義和初始化可以通過利用推導式將其記述成如下簡潔形式,這個 形式就是生成器推導式。
如果是記述成以下的格式,t將不再是生成器,而是[0,1,2,3,4]這樣的一個列表。
生成器除了可以被生成,也可以通過使用send()這個方法將值傳遞出去。
●顯示日曆 指定公曆年份和月份,並顯示相應的日曆
以上內容來自《圖解Python》
編輯推薦:
日本爆款熱銷書——《圖解Python》,聽說累計銷量已經70萬+!輕鬆有趣!,這本書全書以插畫的形式,豐富的插圖、簡潔的說明,形式像繪本一樣有趣,內容像辭典一樣嚴謹,非常適合想要輕鬆、愉快學習Python編程知識的入門讀者學習使用。
以每2頁為單位進行知識點的講解與說明,內容深耕於基礎,可以幫助讀者高效快速地進行Python編程的學習。
不需要讀者有任何的編程基礎。從「編程是什麼」這樣的入門知識開始進行講解。
最後奉上書籍實物圖
掃碼一鍵購買