好家伙,前端出了點bug 我們來搞定後端先: 後端我們用的框架是Spring boot 資料庫:MySQl 代碼已開源,連接在最後 新建項目: 只點Java Web 項目目錄如下: 1.首先,我們在pom.xml文件中導入第三方包: web服務,mysql連接驅動等一系列包 pom.xml文件: < ...
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
的返回值,並列印出來。
如果函數返回了多個值,可以通過多個變數進行接收。如果只用一個變數接收返回多個值的函數的值,則預設為元組,元組中的元素為函數返回的多個值。