python函数调用时的实参和形参之间传递_python 函数(实参与形参、传递参数)...
函數(shù)
什么是函數(shù)?函數(shù)是帶名字的代碼塊,用于完成具體的工作。寫出一個函數(shù)后,就可以一直調(diào)用。
定義函數(shù),函數(shù)的基本組成:
1.1 向函數(shù)傳遞參數(shù)
向函數(shù)中傳遞任意參數(shù),這樣打印出的結(jié)果就可以根據(jù)自己的選擇,做出改變。即是下一節(jié)講到的形參
1 #向函數(shù)傳遞信息
2
3 defgreet_user(username):4 """顯示簡單的問候語"""
5 print("hello," + username + "!")6
7 greet_user('python')
打印結(jié)果:
hello,python!
2、形參與實參
什么是形參?顧名思義,形參就是形式上的參數(shù),可以理解為數(shù)學(xué)的X,沒有實際的值,通過別人賦值后才有意義。相當(dāng)于變量。
什么是實參?顧名思義,實參就是實際意義上的參數(shù),是一個實際存在的參數(shù),可以是字符串或是數(shù)字等。
以上面的例子介紹下什么是形參和實參:
就是在函數(shù)名中定義一個形參,然后在函數(shù)調(diào)用的時候,給函數(shù)名中的形參傳遞一個實際的參數(shù),這個就變?yōu)閷崊ⅰ_@樣的話執(zhí)行函數(shù)體內(nèi)容時就會執(zhí)行對應(yīng)的操作。
注意:傳入實參時,一定要加上引號,否則會報錯。
greet_user(python)
NameError: name'python' is not defined
3、傳遞實參(位置實參、關(guān)鍵字實參、默認(rèn)值、等效的函數(shù)調(diào)用、避免參數(shù)錯誤)
使用背景:
函數(shù)定義中可能包含多個實參,而向函數(shù)傳遞實參的方式有很多,位置實參和關(guān)鍵字實參等。
3.1、位置實參
調(diào)用函數(shù)時,必須將函數(shù)調(diào)用中的每個實參都關(guān)聯(lián)到函數(shù)定義中的一個形參。關(guān)聯(lián)方式是基于實參的順序,這被稱作位置實參
1 #位置實參
2 defdescribe_pet(animal_type,pet_name):3 """顯示寵物信息"""
4 print("\nI have a" + animal_type + ".")5 print("My" + animal_type + "'s name is" + pet_name.title() + ".")6
7 describe_pet('dog','harry')
執(zhí)行結(jié)果:
I have a dog.
My dog's name is Harry.
3.1.1 可以多次調(diào)用函數(shù)
1 defdescribe_pet(animal_type,pet_name):2 """顯示寵物信息"""
3 print("\nI have a" + animal_type + ".")4 print("My" + animal_type + "'s name is" + pet_name.title() + ".")5
6 describe_pet('dog','harry')7
8 #可以多次調(diào)用
9 describe_pet("cat",'coo')10 describe_pet('pig','echo')
執(zhí)行結(jié)果:
1 I have a dog.2 My dog's name is Harry.
3
4 I have a cat.5 My cat's name is Coo.
6
7 I have a pig.8 My pig's name is Echo.
3.1.2 實參的位置也很重要,本末倒置可不好
describe_pet('coo','dog')
執(zhí)行結(jié)果:
I have a coo.
My coo's name is Dog.
3.2、關(guān)鍵字參數(shù)
關(guān)鍵字實參 是傳遞給函數(shù)的名稱:值對。直接將形參與實參關(guān)聯(lián)起來,這樣就不存在順序問題(不會像上一個例子一樣出現(xiàn)搞笑的結(jié)果)。
示例:
1 2、關(guān)鍵字實參2 defdescribe_pet(animal_type,pet_name):3 """顯示寵物信息"""
4 print("\n關(guān)鍵字實參示例:")5 print("I have a" + animal_type + ".")6 print("My" + animal_type + "'s name is" + pet_name.title() + ".")7
8 describe_pet(animal_type="dog",pet_name="harry")
執(zhí)行結(jié)果:
關(guān)鍵字實參示例:
I have a dog.
My dog's name is Harry.
3.3、默認(rèn)值參數(shù)
在編寫函數(shù)時,可以給每個形參設(shè)定一個固定值,即為默認(rèn)值。
在調(diào)用函數(shù)給形參提供實參時,就使用實參值,否則,使用實參的默認(rèn)值,因此,給形參指定默認(rèn)值后,在函數(shù)調(diào)用中省略相應(yīng)的實參。
1 #默認(rèn)值參數(shù)
2 def describe_pet(pet_name,animal_type = 'dog'):3 """顯示寵物信息"""
4 print("\n關(guān)鍵字實參示例:")5 print("I have a" + animal_type + ".")6 print("My" + animal_type + "'s name is" + pet_name.title() + ".")7
8 describe_pet(pet_name="harry")
執(zhí)行結(jié)果:
1 默認(rèn)值實參示例:2 I have a dog.3 My dog's name is Harry.
注意點:這里把pet_name 放在了前面,原因是在這里還是把它當(dāng)做是位置參數(shù),如果形參與實參的位置不對應(yīng),還是會報錯
如果不想使用默認(rèn)值參數(shù),也可以在調(diào)用函數(shù)時,將形參定義一個值,這樣函數(shù)名中的形參默認(rèn)值就會被忽略。
1 describe_pet(animal_type="cat",pet_name="harry")
3.4、等效的函數(shù)調(diào)用
什么叫等效的函數(shù)調(diào)用,即在函數(shù)調(diào)用時,無論是使用位置參數(shù)還是關(guān)鍵字參數(shù)、默認(rèn)值參數(shù)、等到的結(jié)果都是一樣的,這樣的方式就是等效調(diào)用。
示例:
1 #函數(shù)等效調(diào)用
2 #一個名為harry 的小狗
3 def describe_pet(pet_name,animal_type = 'dog'):4 describe_pet(pet_name="harry")5 describe_pet("harry")
3.5、避免實參錯誤
意思就是在進(jìn)行參數(shù)調(diào)用時,要給形參傳一定的實參。否則會報
最后,歡迎關(guān)注我的公眾號,這里分享Python/Java技術(shù),自動化、以及認(rèn)知感悟。
總結(jié)
以上是生活随笔為你收集整理的python函数调用时的实参和形参之间传递_python 函数(实参与形参、传递参数)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web系统 手机app 能访问吗?_苹果
- 下一篇: 本田杰德车怎么样 评测本田杰德车的性能和