💡
含義:將獨立的代碼塊組織成一個整體,使其具有特殊功能的代碼集,在需要的時候再去調用即可
作用:提高代碼的重用性,使整體代碼看上去更加簡練
💡 基本格式:
xxxxxxxxxx
# 1. 定義函數
def 函數名():
函數體
# 2. 調用函數
函數名()
xxxxxxxxxx
def login():
print('這是登錄函數')
login()
輸出結果:
xxxxxxxxxx
這是登錄函數
💡 調用幾次,函數裡面的代碼就會運行幾次,每次調用的時候,函數都會從頭開始執行
實例:編寫一個打招呼的函數並調用
xxxxxxxxxx
def say_hello():
print('hello')
print('Ben')
print('18-year-old')
say_hello()
輸出結果:
xxxxxxxxxx
hello
Ben
18-year-old
💡 函數執行結束後,最後給調用者的一個結果
作用:
return會給函數的執行者返回值
函數中遇到return,表示此函數結束,不繼續執行
xxxxxxxxxx
def buy():
return '一桶水果茶', 20 # return返回多個值,會以元組的形成返回給調用者
# return 20 # 此函數已結束,不繼續執行
# buy() # 與print函數的區別,這裡沒有返回值
print(buy())
輸出結果:
xxxxxxxxxx
('一桶水果茶', 20)
💡 返回值的三種情況:
一個返回值都沒有,返回的結果是None
一個返回值,把值返回給調用者
多個返回值,以元組的形式返回給調用者
return表示此函數結束,print會一直執行
xxxxxxxxxx
def funa():
print(123)
print(456)
return 789
print(funa())
輸出結果:
xxxxxxxxxx
123
456
789
return是返回計算值,print是打印結果
xxxxxxxxxx
def add():
a = 1
b = 2
return a + b
print(add())
# 如果是print就直接print(a+b)
輸出結果:
xxxxxxxxxx
3
形參:定義函數時,小括號裡面的變量
實參:調用函數量,小括號裡面的具體的值
💡 定義和調用格式:
xxxxxxxxxx
# 定義格式:
def 函數名(形參a,形參b,...)
函數體
...(如a=1,b=2)
# 調用格式:
函數名(實參1,實參2)
xxxxxxxxxx
def add(a,b):
return a+b
print(add(1,9))
輸出結果:
xxxxxxxxxx
10
💡 含義:傳遞和定義參與的順序及個數必須一致
格式:def func(a,b)
❗ 定義了幾個參數就要傳遞幾個參數,不可以多傳或者少傳,順序也要排定
xxxxxxxxxx
def func1(name,age,sex):
print(name)
print(age)
print(sex)
func1("Antonio","18","Male")
輸出結果:
xxxxxxxxxx
Antonio
18
Male
💡 含義:為參數提供默認值,調用函數時可以不傳該默認參數的值
格式:def func(a = 12)
xxxxxxxxxx
def func2(a = 8):
print(a)
func2()
func2(200)
輸出結果:
xxxxxxxxxx
8
200
❗ 1. 所有的位置參數必須出現在默認參數前,包括函數定義和調用
設置了默認參數,沒有傳值就按照默認值執行,傳值就根據傳入值執行代碼
xxxxxxxxxx
# def func3(a = 8, b): # 語法錯誤
def func3(b, a = 8):
print(a + b)
func3(18)
輸出結果:
xxxxxxxxxx
26
💡 含義:傳入的值的數量是可以改變的,可以傳入多個、也可以不傳
格式:def func(*args)
xxxxxxxxxx
def func4(*args): # 可以把args改成其他參數名,但是args更符合代碼規範性
print(args)
print(type(args))
func4('LV','Dior','Chanel') # 以元組形式接收
輸出結果:
xxxxxxxxxx
('LV', 'Dior', 'Chanel')
<class 'tuple'>
💡 格式:def func(**kwargs):
xxxxxxxxxx
def func5(**kwargs):
print(kwargs)
func5() # 什麼都不返回就是空字典
func5(name = 'Antonio', age = 18 , sex = 'Male') # 只能傳鍵值對
輸出結果:
xxxxxxxxxx
{}
{'name': 'Antonio', 'age': 18, 'sex': 'Male'}
💡 含義:在一個函數裡面調用另一個函數
xxxxxxxxxx
def study():
print('晚上在學習')
def course():
study() # 在course()函數內調用study()
print('Python基礎')
course()
輸出結果:
xxxxxxxxxx
晚上在學習
Python基礎
💡 含義:在一個函數中定義另一個函數
❗ 定義和調用是同級的
不要在內層函數中調用外層函數,會陷入死循環,直到超過遞歸的最大深度
xxxxxxxxxx
def study(): # 外函數
print('晚上在學習')
def course(): # 內函數
print('Python基礎')
course() # 內函數要被調用。
study()
輸出結果:
xxxxxxxxxx
晚上在學習
Python基礎
目的地 | 超連結 |
---|---|
首頁 | 返回主頁 |
Python學習 | Python學習 |
上一篇 | 08 - 類型轉換&深淺拷貝 |
下一篇 | 10 - 函數進階 |