函數的作用:
函數的主要作用是結束重複編寫代碼,函數的編寫更容易理解、測試代碼。
閱讀指南:
#符號>>>後表示輸入的代碼,無開頭表示爲運行的結果
>>>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)