函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段,所以我經常說函式是程式設計師規模化使用的基礎。
函式能提高應用的模組性,和**的重複利用率。在程式設計中,常將一些常用的功能模組編寫成函式,放在函式庫中供公共選用。善於利用函式,可以減少重複編寫程式段的工作量。
定義乙個函式有如下幾個步驟
任何傳入引數和自變數必須放在圓括號中間。圓括號之間可以用於定義引數。
函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。
函式內容以冒號起始,並且縮排。
return [表示式] 結束函式,選擇性地返回乙個值給呼叫方。不帶表示式的return相當於返回 none。
語法
def 函式名(引數列表):
函式體
預設情況下,引數值和引數名稱是按函式宣告中定義的順序匹配起來的。
乙個最簡單的函式示例:
#定義乙個函式
def hello() :
print("hello world!")
#呼叫函式
hello()
再來乙個代引數的示例:
#定義乙個函式
def hellon(name) :
print("hello world!", name)
#呼叫函式
hellon('neo')
我們使用函式實現乙個基本的加減乘除運算。
#定義函式
def add(a,b) :
return a+b
def reduce(a,b) :
return a-b
def multiply(a,b) :
return a*b
def divide(a,b) :
return a/b
#呼叫函式
print(add(1,2))
print(reduce(12,2))
print(multiply(6,3))
print(divide(12,6))
發現定義函式可以實現**的多次復用。
某些情況下,我們需要乙個函式返回多個值,python 也是支援的。
#定義多個返回值函式
def more(x, y):
nx = x + 2
ny = y - 2
return nx, ny
#呼叫函式
x, y = more(10, 10)
print(x, y)
有時候我們需要反覆呼叫某個函式得到乙個最後的值,這個時候使用遞迴函式是最好的解決方案。
程式語言中,函式func(type a,……)直接或間接呼叫函式本身,則該函式稱為遞迴函式。遞迴函式不能定義為內聯函式
舉個例子,我們來計算階乘n! = 1 x 2 x 3 x ... x n
,用函式fact(n)表示,可以看出:
fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n
所以,fact(n)可以表示為n x fact(n-1)
,只有n=1
時需要特殊處理。
於是,fact(n)用遞迴的方式寫出來就是:
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
這樣乙個遞迴函式就定義完了。
我們試著呼叫一下 6 的階乘是多少,可以這樣呼叫:
print(fact(6))
# 輸出內容
# 720
類似的需要都可以按照這樣的方式來實現。
文中示例**:python-100-days
本節給大家介紹了 python 函式的使用。
示例**:python-100-days-day005參考:
python第5天學習
函式以def開頭,後面接函式名和圓括號 函式執行的 以冒號為起始,並且縮排。return結束函式選擇返回乙個值給呼叫方不用表示式return相當於返回none。可以沒有返回值。def function d ddd return c 函式的呼叫 temp function s wemp是s print...
python基礎 第5天
推導式建立序列 推導式是從乙個或者多個迭代器快速建立序列的一種方法。它可以將迴圈和條件判斷結合,從而避免冗長的 推導式是典型的python風格,會使用它代表你已經超過python初學者的水平。列表推導式 列表推導式生我列表物件,語法如下 表示式 for item in 可迭代物件 或者 字典推導式 ...
學習Python第5天
字串的定義 轉義字元 描述 反斜槓符號 單引號 雙引號 n 換行 t 橫向製表符 tab r 回車print let s go let s go print let s go let s go print c now c now print c program files intel wifi he...