目錄python
函數就是一種工具,能夠重複調用。函數
經過def
(define)關鍵字定義函數---> 製造工具工具
調用函數 ---> 使用工具code
def 函數名(): ''' 函數的註釋,描述函數體代碼的功能 ''' 代碼塊1 代碼塊2 函數名() # 使用函數
# 定義函數(製造工具) def index(): # index變量名 print('你好,函數!') # 代碼塊 index() # index訪問函數的內存地址,括號是調用的意思
函數名的命名規範與變量名同樣內存
pass
函數先定義後執行,不調用函數,就不會執行函數體代碼,只會檢測函數體代碼的語法規範性it
index() index(name, pwd) # 傳入參數執行 index(1, index(3, 2)) # 先執行裏面的index
return:是一個函數結束的標誌,函數體代碼只要執行到return,函數執行結束class
不寫return,默認返回none容器
只寫return,只有結束函數體代碼的效果,返回none變量
寫return none,與只寫return的效果相同數據類型
return返回一個值:能夠將返回的結果,當作一個變量值來使用
return返回多個值
是在函數定義階段就規定的參數,至關於定義變量時的變量名
是在函數調用階段傳入的參數,至關於定義變量時的變量值
def index(a): # 形參:a至關於變量名,用來接收變量值 print(a) index(a) # 實參:至關於變量值,將值傳入形參
經過位置進行傳參
def index(a, b): print(a, b) index(1, 3) # 位置參數
指定關鍵字傳參
def index(a, b): print(a, b) index(a=1, b=3) # 關鍵字參數
位置參數必定要寫在關鍵字參數以前
連用的時候,不要對同一個形參重複賦值
def index(a, b, c, d): print(a, b, c, d) index(1, 2, c=3, d=4) # 位置參數和關鍵字參數混用
# 定義在* 和**之間 # 在給命名關鍵字傳值的時候必定要以關鍵字形式傳遞 # 關鍵字參數必定不能放在位置參數前面 def index(x, y, z, a=1, *args, b, **kwargs): print(x, y, z) print(args) print(a, b) print(kwargs) index(1, 2, 3,354353, 4342, 3213123, b=222, c=333, d=444)
默認參數:
應用場景:
def reg(username, password, gender): print(f'用戶名:{username} 密碼:{password} 性別:{gender}) reg('tank', 'dsb', 'male') reg('jason', 'dsb', 'male') reg('engon', 'dsb', 'male') # 將gender的實參定義爲male def reg(username, password, gender='male'): print(f'用戶名:{username} 密碼:{password} 性別:{gender}) reg('tank', 'dsb') # 默認爲male reg('jason', 'dsb') reg('engon', 'dsb') reg('胡晨陽', 'dsb', 'female') # femal會去修改male,爲femal
官方規定使用*args,可是隻要有*就有能夠有變長參數的效果
可變長參數:
*args
接收全部溢出的位置參數
**kwargs
:接收全部溢出的關鍵字參數
# 位置參數 def index(a, b, c, d, *args): print(a, b, c, d, *args) index(1, 3, 4, 5, 6, 7, 8, *[8, 9]) # 關鍵字參數 def index(a, b, c, d, **kwargs): print(a, b, c, d, *kwargs) index(1, 3, c=4, d=5, e=6)