5.2 定義(創建)、呼叫函式及回傳值
5.2.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就可以求出該學生的總成績了,
5.2.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
5.2.3 函式回傳值
在上面,如果我們print(sum_score1())會先執行函式,得到結果:學生的總成績為:235,然后還會得到該函式的回傳值:None,
函式可以有回傳值,就是呼叫函式后獲取到的值,函式可以同時回傳多個值,此時多個回傳值會自動合并成一個元組型別,一般用return作為函式回傳值的關鍵字,
每個函式一旦執行到return后就會立刻回傳結果并停止執行后面的代碼,
如果函式體中沒有return關鍵字,則函式的回傳值默認為None,
注意:
在撰寫函式時,最好在遇到特殊情況時,尤其是報錯時,應該拋出例外,而不是回傳None,比如除法分子為0的情況,這樣有助于發現例外并修正,
示例2:算學生總分并回傳
def sum_score2():
sum_score = 80 + 95 + 60
print(f'學生的總成績為:{sum_score}')
return sum_score
sumScore = sum_score2()
print(sumScore)
學生的總成績為:235
235
上面我們通過關鍵字return回傳了總成績sum_score,接下來在呼叫時用變數 sumScore接收了函式sum_score2的回傳值,并列印出來,
如果函式回傳了多個值,可以通過多個變數進行接收,如果只用一個變數接識訓傳多個值的函式的值,則默認為元組,元組中的元素為函式回傳的多個值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/538447.html
標籤:其他
下一篇:matplotlib詳細教學
