09 - 函數基礎📄目錄1 函數2 返回值 return2.1 return和print的區別3 參數3.1 形參和實參3.2 函數參數3.2.1 必備參數(位置參數)3.2.2 默認參數(缺省參數)3.2.3 可變參數3.2.4 關鍵字參數4 函數嵌套4.1 嵌套調用4.2 嵌套定義導航連結:
💡
含義:將獨立的代碼塊組織成一個整體,使其具有特殊功能的代碼集,在需要的時候再去調用即可
作用:提高代碼的重用性,使整體代碼看上去更加簡練
💡 基本格式:
xxxxxxxxxx# 1. 定義函數def 函數名():函數體# 2. 調用函數函數名()
xxxxxxxxxxdef login(): print('這是登錄函數')login()輸出結果:
xxxxxxxxxx這是登錄函數💡 調用幾次,函數裡面的代碼就會運行幾次,每次調用的時候,函數都會從頭開始執行

實例:編寫一個打招呼的函數並調用
xxxxxxxxxxdef say_hello(): print('hello') print('Ben') print('18-year-old')say_hello()輸出結果:
xxxxxxxxxxhelloBen18-year-old💡 函數執行結束後,最後給調用者的一個結果
作用:
return會給函數的執行者返回值
函數中遇到return,表示此函數結束,不繼續執行

xxxxxxxxxxdef buy(): return '一桶水果茶', 20 # return返回多個值,會以元組的形成返回給調用者 # return 20 # 此函數已結束,不繼續執行# buy() # 與print函數的區別,這裡沒有返回值print(buy())輸出結果:
xxxxxxxxxx('一桶水果茶', 20)💡 返回值的三種情況:
一個返回值都沒有,返回的結果是None
一個返回值,把值返回給調用者
多個返回值,以元組的形式返回給調用者

return表示此函數結束,print會一直執行
xxxxxxxxxxdef funa(): print(123) print(456) return 789print(funa())輸出結果:
xxxxxxxxxx123456789
return是返回計算值,print是打印結果
xxxxxxxxxxdef add(): a = 1 b = 2 return a + bprint(add())# 如果是print就直接print(a+b)輸出結果:
xxxxxxxxxx3形參:定義函數時,小括號裡面的變量
實參:調用函數量,小括號裡面的具體的值
💡 定義和調用格式:
xxxxxxxxxx# 定義格式:def 函數名(形參a,形參b,...) 函數體 ...(如a=1,b=2)# 調用格式:函數名(實參1,實參2)
xxxxxxxxxxdef add(a,b): return a+bprint(add(1,9))輸出結果:
xxxxxxxxxx10💡 含義:傳遞和定義參與的順序及個數必須一致
格式:def func(a,b)
❗ 定義了幾個參數就要傳遞幾個參數,不可以多傳或者少傳,順序也要排定

xxxxxxxxxxdef func1(name,age,sex): print(name) print(age) print(sex)func1("Antonio","18","Male")輸出結果:
xxxxxxxxxxAntonio18Male💡 含義:為參數提供默認值,調用函數時可以不傳該默認參數的值
格式:def func(a = 12)

xxxxxxxxxxdef func2(a = 8): print(a)func2()func2(200)輸出結果:
xxxxxxxxxx8200❗ 1. 所有的位置參數必須出現在默認參數前,包括函數定義和調用
設置了默認參數,沒有傳值就按照默認值執行,傳值就根據傳入值執行代碼

xxxxxxxxxx# def func3(a = 8, b): # 語法錯誤def func3(b, a = 8): print(a + b)func3(18)輸出結果:
xxxxxxxxxx26💡 含義:傳入的值的數量是可以改變的,可以傳入多個、也可以不傳
格式:def func(*args)

xxxxxxxxxxdef func4(*args): # 可以把args改成其他參數名,但是args更符合代碼規範性 print(args) print(type(args))func4('LV','Dior','Chanel') # 以元組形式接收輸出結果:
xxxxxxxxxx('LV', 'Dior', 'Chanel')<class 'tuple'>💡 格式:def func(**kwargs):

xxxxxxxxxxdef func5(**kwargs): print(kwargs)func5() # 什麼都不返回就是空字典func5(name = 'Antonio', age = 18 , sex = 'Male') # 只能傳鍵值對輸出結果:
xxxxxxxxxx{}{'name': 'Antonio', 'age': 18, 'sex': 'Male'}💡 含義:在一個函數裡面調用另一個函數

xxxxxxxxxxdef study(): print('晚上在學習')def course(): study() # 在course()函數內調用study() print('Python基礎')course()輸出結果:
xxxxxxxxxx晚上在學習Python基礎💡 含義:在一個函數中定義另一個函數
❗ 定義和調用是同級的
不要在內層函數中調用外層函數,會陷入死循環,直到超過遞歸的最大深度

xxxxxxxxxxdef study(): # 外函數 print('晚上在學習') def course(): # 內函數 print('Python基礎') course() # 內函數要被調用。study()輸出結果:
xxxxxxxxxx晚上在學習Python基礎| 目的地 | 超連結 |
|---|---|
| 首頁 | 返回主頁 |
| Python學習 | Python學習 |
| 上一篇 | 08 - 類型轉換&深淺拷貝 |
| 下一篇 | 10 - 函數進階 |