函數的作用:
函數的主要作用是結束重復編寫代碼,函數的編寫更容易理解、測試代碼。
閱讀指南: #符號>>>后表示輸入的代碼,無開頭表示為運行的結果 >>>print("Hello,python") Hello,python
python中函數定義方法:
def function_name():#定義函數的名字格式為"def 函數名稱():"括號一定要加,即使里面沒有任何數據。 move code#你需要運行的代碼 function_name()#調用你定義的函數
實例:
>>>def names():#定義一個叫做names()的函數
"""打印名字"""
>>> print("My name is lixiang")#該行就是函數的子代碼,調用函數時就會運行該代碼 >>>names()#調用定義的函數"names()" My name is lixiang#調用函數后的結果
函數不單單只能夠重復代碼,也可以將函數外部的數據傳遞至函數內部的代碼中。
形參and實參:
>>>def names(name1):#括號中的name1就是 形參 它的主要作用就是接收來自 實參 的數據
"""打印名字"""
>>> print(f"My name is {name1}") >>>names("lixiang")# 括號中的"lixiang" 就是 實參 #形參 和 實參 主要作用就是傳遞函數外的數據至函數內部
形參調用實參中的方法:
位置調用實參:
#位置調用就是基於實參和形參的位置來進行調用函數 >>>def information(name,age):#定義函數名和形參
"""填寫個人信息""" >>> print(f"{name} is {age} old year")#形參數據的使用 >>>information("lixiang","22")#實參傳遞數據給形參,而傳遞的方式是位置傳遞
lixiang is 22 old year
關鍵字調用實參:
>>>def information(name,age):#定義函數名和形參
"""填寫個人信息""" >>> print(f"{name} is {age} old year")#形參數據的使用 >>>information(age="22",name="lixiang")#通過關鍵字的傳遞來傳遞實參,在函數中使用"="符號時,兩邊不要加空格
lixiang is 22 old year
形參默認值:
有些時候我們需要默認值,當你不填寫的時候它會有個默認值。比如說我新增默認信息 來自:“中國”
>>>def information(name,age,come_from="china"):#第三個為默認值"china" 需要將填寫默認值的數據填寫在形參的最后面,這樣才可以更好的使用位置調用實參。 """默認參數值"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形參數據的使用 >>>information(age="22",name="lixiang")#無需填寫其他信息時 lixiang is 22 old year.He comes from china #輸出為默認值China
當你填寫數據的時候就會把默認值覆蓋掉
>>>def information(name,age,come_from="china"):#第三個為默認值"china" 需要將填寫默認值的數據填寫在形參的最后面,這樣才可以更好的使用位置調用實參。
"""填寫個人信息"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形參數據的使用 >>>information("lixiang","22","America")#需要更改信息時 lixiang is 22 old year.He comes from America#輸出結果從China更改為America
返回值:
內置方法return可指定返回的值,在函數內部代碼中,如果遇到return則會立即停止,並且返回你指定的值。在默認沒有指定的情況下,返回的值時none
不指定返回值時
>>>def information(name,age,come_from="china"):#定義函數名和形參
"""填寫個人信息"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形參數據的使用 >>> return#未指定任何的值進行返回 >>>x = information("lixiang","22","America")用一個變量名x去接收返回的值 >>>print(x)#打印返回的值 lixiang is 22 old year.He comes from America None#返回的值
指定返回值時:
>>>def information(name,age,come_from="china"):#定義函數名和形參
"""填寫個人信息"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形參數據的使用 >>> return name#指定返回name >>>x = information("lixiang","22","America")用一個變量名x去接收返回的值 >>>print(x)#打印返回的值 lixiang is 22 old year.He comes from America lixiang#返回的值
讓實參變成可選的:
在實際的使用中可能有些時候需要實參,但有時候不需要,調用函數時不可能一直更改定義好的函數,這時需要我們提供可以選擇的實參。
>>>def cars_list(colour,style,depreciation=''):#depreciation變成可選擇的 >>> """讓新舊程度變成可選擇的內容""" >>> if depreciation:#depreciation有內容的情況下,布爾值為True >>> print(f"colour is {colour},style is {style},depreciation is {depreciation}") >>> else: >>> print(f"colour is {colour},style is {style}") >>>cars_list("red","suv","8.5")#填寫新舊程度下的情況下
colour is red,style is suv,depreciation is 8.5
沒有填寫內容的情況下:
>>>def cars_list(colour,style,depreciation=''):#depreciation變成可選擇的 >>> """讓新舊程度變成可選擇的內容""" >>> if depreciation:#depreciation有內容的情況下,布爾值為True >>> print(f"colour is {colour},style is {style},depreciation is {depreciation}") >>> else: >>> print(f"colour is {colour},style is {style}") >>>cars_list("red","suv",)#沒有填寫新舊程度下的情況下 colour is red,style is suv
傳遞任意數量的實參:
>>>def make_pizza(*toppings):#前面加上一個符號*,可接收任意數量的實參,可配合之前說明的的內容填入,該類應該放置形參的最后 >>> """打印顧客點的所有配料""" >>>print(toppings) >>>make_pizza('pepperoni') >>>make_pizza('mushrooms', 'green peppers', 'extra cheese') ('pepperoni',) ('mushrooms', 'green peppers', 'extra cheese')
創建一個新列表,並傳遞任何數量的形參**
def build_profile(first, last, **user_info):#兩個**后會創建一個名為user_info的列表 """創建一個字典,其中包含我們知道的有關用戶的一切""" profile = {} profile['first_name'] = first profile['last_name'] = last for key, value in user_info.items(): profile[key] = value return profile user_profile = build_profile('albert', 'einstein', location='princeton', field='physics') print(user_profile)