1. 程式人生 > >初識python: 自定義函數

初識python: 自定義函數

結束 信息 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: 自定義函數