初識python: 自定義函數
阿新 • • 發佈:2018-09-28
結束 信息 pri def 數量 記錄 實例 file 不能
什麽是函數?
函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。函數能提高應用的模塊性,和代碼的重復利用率。
函數的定義方法:
def test(x):
‘函數定義方法‘
x+=1
return x
解釋:
def:定義函數關鍵字
test:函數名
():可定義形參
‘‘:文檔描述
x+=1:代碼塊或程序處理邏輯
return:結束並返回值
函數為什麽要有返回值?
通過返回值接收函數的執行結果,後續的邏輯需要通過此結果執行其對應操作。
實例:給一個文件寫入日誌信息
import time # 定義函數 def test1(): ‘函數練習:添加日誌記錄‘ log_time= time.strftime(‘%Y-%m-%d %X‘) with open(‘file_a‘,‘a‘) as f: f.write(log_time+‘:log msg\n‘) # 調用函數 test1()
函數返回值說明:
return 返回值數量=0:返回一個空值(None)
返回值數量=1:返回一個對象(object)
返回值數量>1:返回一個元組(tuples)
實例:
#函數返回類型 def test_None(): print(‘返回一個空值‘) x=test_None() print(x) def test_object():print(‘返回一個對象‘) return 0 y=test_object() print(y) def test_tuples(): print(‘返回一個元組‘) return 1,‘hello world‘,[‘qwe‘,‘asd‘],{‘001‘:‘simple‘} z=test_tuples() print(z)
形參:定義的參數叫形參(x,y)
實參:實際傳入的參數叫實參(1,2)
不指定參數的情況下:實參與形參位置一一對應
實例:
註:位置傳參與關鍵字傳參共用時,關鍵字參數不能寫在位置參數之前
def test_sum(x,y): ‘兩數之和‘ z= x + y return z t_sum=test_sum(1,2) #實參與形參位置一一對應 print(t_sum) t_sum2=test_sum(x=1,y=2) #與形參位置無關 print(t_sum2) t_sum3=test_sum(1,y=2) # 錯誤方式:test_sum(x=1,2) 位置傳參與關鍵字傳參共用時,關鍵參數不能寫在位置參數之前 print(t_sum3)
默認值參數:
# 默認值參數 def test_default(x,y=2): ‘默認值參數‘ z = x + y return z print(test_default(2)) #print(tesst_default(2,2))
參數組(不定長參數):
# 參數組,接受位置參數,將多個實參存入一個元組中 # 定義格式:*變量名(一般規範為 *args) def test_group(*args): ‘參數組‘ print(args) test_group(1,2,3,4,5,6) def test_group2(x,*args): ‘參數組與位置參數混用‘ print(x) print(args) test_group2(1,2,3,4,5,6) # 接受關鍵字參數組,轉換成字典 def test_group3(**kwargs): ‘參數組鍵值對形式‘ print(kwargs[‘name‘]) test_group3(name=‘simple‘,age=25,sex=‘m‘) def test_group4(name,**kwargs): ‘參數、參數組鍵值對混用‘ print(name) print(kwargs) test_group4(‘simple‘,age=25,sex=‘m‘) #註:參數組必須放在位置參數、默認參數之後 def test_group5(name,age=25,**kwargs): ‘參數、默認參數、參數組鍵值對混用‘ print(name) print(age) print(kwargs) test_group5(‘simple‘,age=3,sex=‘m‘,game=‘lol‘) def test_group6(name,age=25,*args,**kwargs): ‘參數、默認參數、參數組、參數組鍵值對混用‘ print(name) print(age) print(*args) print(kwargs) test_group5(‘simple‘,age=3,sex=‘m‘,game=‘lol‘)
初識python: 自定義函數