1.定義(建立)函式
要呼叫一個函式,首先要定義它。在Python中使用關鍵字def來定義一個函式。
函式通常由函式名、引數列表以及一系列語句組成的函式體構成的。函式定義的一般格式如下:
def 函式名(引數列表):
函式體
例如:
def sayhello():
print('hello')
最簡單的函式:
def myfun():
pass
上面的函式是在Python中定義的最簡單的函式,雖然沒有實際作用,但是它符合Python定義函式的規則。
包括:
- def關鍵字
- 函式名:myfun,函式名的命名需滿足Python中識別符號的命名規範。
- 包含引數的括號(必須是英文括號):這個函式沒有引數
- 冒號(必須是英文冒號):這也是Python函式定義時必不可少的部分
- 函式體:pass表示什麼也不做,但是可以用來佔位。函式體必須進行縮排。
一個比較完整的函式定義如下:
函式引數及函式返回我們將在後續的內容中進行學習。
示例1:算學生總分
def sum_score1():
print(f'學生的總成績為:{80 + 95 + 60}')
如果一個學生的語文、數學、英語分別為80、95、60分,那麼透過上面示例1中的函式sum_score1就可以求出該學生的總成績了。
2 呼叫函式
在定義函式之後,如果不對該函式進行呼叫,那麼該函式不會起作用。也就不能達到我們想要的結果了。所以我們一般在定義函式之後,緊接著就要在合適的地方對剛才定義的函式進行呼叫。
呼叫函式的方法也非常簡單,比如我們要呼叫上面示例1中的函式sum_score1,呼叫的方法如下:
sum_score1()
#輸出
學生的總成績為:235
在呼叫函式後,程式碼的執行就會跳轉到呼叫的函式中,按照順序依次執行函式體內所有的程式碼。
注意:
1、對於自定義函式,一定要先定義,才能呼叫函式,否則在呼叫函式時會報錯:
Traceback (most recent call last):
File "D:\Py\test.py", line 9, in
sum_score()
NameError: name 'sum_score1' is not defined
2、呼叫函式時必須在函式名後新增英文的括號,否則不能正常呼叫函式:
sum_score1
print(sum_score1)
print(sum_score1())
#輸出
<function sum_score1 at 0x000001FEFB0BCB80>
學生的總成績為:235
None
3 函式返回值
在上面,如果我們print(sum_score1())會先執行函式,得到結果:學生的總成績為:235,然後還會得到該函式的返回值:None。
函式可以有返回值,就是呼叫函式後獲取到的值,函式可以同時返回多個值。此時多個返回值會自動合併成一個元組型別。一般用return作為函式返回值的關鍵字。
每個函式一旦執行到return後就會立刻返回結果並停止執行後面的程式碼。
如果函式體中沒有return關鍵字,則函式的返回值預設為None。
注意:
在編寫函式時,最好在遇到特殊情況時,尤其是報錯時,應該丟擲異常,而不是返回None,比如除法分子為0的情況,這樣有助於發現異常並修正。
示例:算學生總分並返回
def sum_score2():
sum_score = 80 + 95 + 60
print(f'學生的總成績為:{sum_score}')
return sum_score
sumScore = sum_score2()
print(sumScore)
#小編建立了一個Python學習交流群:531509025
#輸出
學生的總成績為:235
235
上面我們透過關鍵字return返回了總成績sum_score,接下來在呼叫時用變數 sumScore接收了函式sum_score2的返回值,並列印出來。
如果函式返回了多個值,可以透過多個變數進行接收。如果只用一個變數接收返回多個值的函式的值,則預設為元組,元組中的元素為函式返回的多個值。