Python中函數的使用


函數讓代碼的編寫,閱讀,測試和修改都變得更容易,提高代碼的復用性,python中使用def關鍵字定義函數

如下代碼在python3.7.3的Genay開發工具中編寫測試通過。

一、簡單函數定義及調用

def say_hi():
    print("hi")
    
say_hi()

二、傳遞參數

def say_hi(name):
    print("hi, "+name)
    
say_hi("jesee")

三、實參傳遞

1、位置實參

位置實參中位置很重要,位置不正確,得到的結果和邏輯上應該出現的結果不同,並且出現邏輯錯誤。

def out(name,addr):
    print(name+" address: " + addr)
    
out('xiao','henan')
out('beijing','auth')

第一次調用out方法正確輸出,第二次調用out方法傳遞的參數不正確,造成輸出結果邏輯錯誤。

2、關鍵字實參

 傳遞一對“形參名稱-實參值”,參數傳遞與位置無關,因此向函數傳遞實參時不會混淆。關鍵字參數在參數調用時傳遞,並且必須在位置參數之后調用,如下兩個參數都使用了關鍵字實參

def out(name,addr):
    print(name+" address: " + addr)
    
out('xiao','henan')
out(addr='beijing',name='auth')

雖然第二次調用out方法時,傳遞的參數位置順序與方法定義不同,但輸出結果與邏輯上希望輸出的結果一致。關鍵字參數能明確的指出每個參數所被傳遞的實參。方法更易閱讀,加上位置順序,則更易於維護,但缺點是代碼較多。

四、參數默認值

默認人員的地址均在北京,如果傳遞了地址參數,則使用傳遞的地址參數,若未傳遞地址,則使用默認的地址,參數默認值在聲明方法時定義。

def out(name,addr='beijing'):
    print(name+" address: " + addr)
    
out('xiao','henan')
out('auth')

五、函數返回值

python函數可以返回簡單字符串或者其他數據類型

def get_name():
    return "xiao"
def get_list():
    return ['a','b','c']
def get_dict():
    return {"country":"china","lanage":"chinese"}

name=get_name()
ls=get_list()
gdict=get_dict()

print(name)
print(ls)
print(gdict)

六、示例:接收用戶輸入,當用戶輸入quit時,退出,否則將用戶輸入的數據記錄起來,最多輸入5次

def receive_and_output():
    i=0;
    ls=[]
    recv=""
    while(recv != "quit" and i <5):
        recv=input("pls input something: ")
        ls.append(recv)
        i+=1
    return ls
        
ls=receive_and_output()
print(ls)

輸入5次,滿足條件,退出輸入,並輸出用戶輸入內容

 

輸入quit,滿足條件,退出輸入,並輸出用戶輸入內容

七、示例:傳遞並修改列表

def receive_and_modify_list(ls):
    for v in ls:
        print(v)
    ls.append("nice")

ls=['a','b']
receive_and_modify_list(ls)
print(ls)

八、傳遞任意數量的實參

def pass_any_param(*params):
    for v in params:
        print (v)
        
pass_any_param(1,2,'yes')

九、傳遞位置實參和任意數量實參

此時任意數量實參需要放在最后,且只能有一個任意數量實參。

def more_param(name,*params):
    ls=[]
    ls.append(name)
    for v in params:
        ls.append(v)
    return ls
        
ls=more_param('xiao','12','bj','shunyiqu')
print(ls)

十、方法中的變量屬於局部變量,方法外不能訪問

def get_list():
    ls=['a','b']

get_list()
print(ls)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM