Python中函數的定義與使用


一、函數基本定義

  定義函數的目的是為了讓一段代碼可以被重復使用

  函數定義的語法:

def  函數名([參數,參數.....]):
    函數主體代碼(多行代碼)
    [return [返回值]]
注:函數中的函數體都通過縮進來定義

  實例一:定義一個無參有返回值的函數

# coding=UTF-8
def get_info(): 
    #獲取信息的函數
    return "我的第一個函數"

print(get_info()) #調用函數,直接返回內容輸出

  程序執行結果:

  

 

 

二、函數的參數傳遞

 

  實例一:

# coding=UTF-8
def echo(title,url):
    return "網站名稱:%s,主頁地址:%s"%(title,url)

print(echo("百度","www.baidu.com"))

print(echo(url="www.baidu.com",title="百度"))

   

  實例二:定義參數的默認值

# coding=UTF-8
def echo(title,url="www.taobao.com"):
    return "網站名稱:{},主頁地址:{}".format(title,url)
#打印輸出指定標題及網址
print(echo("百度","www.baidu.com"))
#打印輸出不指定網址
print(echo("淘寶"))

  執行結果:

  

 

 注:如果在參數上定義了默認值,那么該參數一定要放在參數列表的最后

 

  實例二:使用函數修改列表

# coding=UTF-8
def change_data(list):
    list.append("one")  #修改列表內容
#定義infos列表
infos = ["tow"]
change_data(infos)  #函數擴充列表內容
print(infos)  #輸出infos列表

  執行結果:

   

 

三、可變參數

  按照之前的參數形式,只要函數定義了幾個參數,在函數調用的時候就必須明確的傳遞幾個參數,在Python中為了靈活的使用參數提供有可變參數的形式。

  可變參數都使用元組來進行接收。

  實例一:使用元組(使用“*”標記來聲明)的可變參數實現累加及累減的操作

# coding=UTF-8
def math(cmd,*numbers): # *代表numbers定義的是一個元組
    print("可變參數numbers的類型:%s,參數的數量:%d" %(type(numbers),len(numbers)))
    sum = 0 #保存計算結果
    if cmd == "+":
        for num in numbers:
            sum += num
    elif cmd == "-":
        for num in numbers:
            sum -= num
    return sum

print("數字的累加結果:%d" %math("+",1,2,3,4,5,6,7,8,9))
print("數字的累減結果:%d" %math("-",1,2,3,4,5,6,7,8,9))

  執行結果:

  

 

 

 

  實例二:使用字典(可以使用“**”標記來聲明)來實現關鍵字參數的傳遞

# coding=UTF-8
def print_info(name,**urls):
    """
    定義輸出函數
    param name:用戶姓名
    param urls:一組key=value的組合 網站名=網址
    """
    print("用戶姓名:%s" %name)
    print("喜歡的網站:")
    for key,value in urls.items():
        print("\t|-%s:%s" %(key,value))

print_info("風之老凌",baidu="www.baidu.com",taobao="www.taobao.com")

  執行結果:

  

 

 

四、定義混合參數

  函數中參數的類型可以有很多種:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數,這些參數在定義是也要考慮到其各自的語法參數問題。

   實例一:

# coding=UTF-8
def print_info(name,age,*inst,**urls):
    print("用戶姓名:%s,年齡:%s" %(name,age))
    print("用戶的興趣:",end="")
    for item in inst:
        print(item,end="")
    print("\n喜歡的網站:")
    for key,value in urls.items():
        print("\t|-%s:%s" %(key,value))

print_info("風之老凌",20,"看書","寫作",baidu="www.baidu.com",taobao="www.taobao.com")

  執行結果:

  

 

 

五、函數的遞歸調用 (如非必要情況不建議使用遞歸)

遞歸調用的處理條件

  需要明確的定義一個遞歸調用的結束條件

  每一次調用的時候都需要修改相應的參數的內容

 

  實例一:使用遞歸計算1-99的和

# coding=UTF-8
def sum(num):
    if num == 1:
        return 1
    return num + sum(num -1)

print("1-99的和:%d" %sum(100))

  執行結果:

  

 


免責聲明!

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



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