python3中函數(shù)參數(shù)的四種簡(jiǎn)單用法
下面給大家介紹python3中函數(shù)參數(shù)的四種簡(jiǎn)單用法,具體內(nèi)容如下所示:
def print_two(*args): arg1, arg2 = args print "arg1: %r, arg2: %r" % (arg1,arg2) def print_two_again(arg1, arg2): print "arg1: %r, arg2: %r" % (arg1, arg2) def print_one(arg1): print "arg1: %r" % arg1 def print_none(): print "I got nothin" print_two("Zed","Shaw") print_two_again("Zed","Shaw") print_one("First!") print_none()
默認(rèn)參數(shù)
看下面代碼
def stu_register(name,age,country,course): print("----注冊(cè)學(xué)生信息------") print("姓名:",name) print("age:",age) print("國(guó)籍:",country) print("課程:",course) stu_register("王山炮",22,"CN","python_devops") stu_register("張叫春",21,"CN","linux") stu_register("劉老根",25,"CN","linux")
發(fā)現(xiàn) country 這個(gè)參數(shù) 基本都 是"CN", 就像我們?cè)诰W(wǎng)站上注冊(cè)用戶,像國(guó)籍這種信息,你不填寫,默認(rèn)就會(huì)是 中國(guó), 這就是通過(guò)默認(rèn)參數(shù)實(shí)現(xiàn)的,把country變成默認(rèn)參數(shù)非常簡(jiǎn)單
def stu_register(name,age,course,country="CN"):
這樣,這個(gè)參數(shù)在調(diào)用時(shí)不指定,那默認(rèn)就是CN,指定了的話,就用你指定的值。
另外,你可能注意到了,在把country變成默認(rèn)參數(shù)后,我同時(shí)把它的位置移到了最后面,為什么呢?
關(guān)鍵參數(shù)
正常情況下,給函數(shù)傳參數(shù)要按順序,不想按順序就可以用關(guān)鍵參數(shù),只需指定參數(shù)名即可,但記住一個(gè)要求就是,關(guān)鍵參數(shù)必須放在位置參數(shù)之后。
stu_register(age=22,name='alex',course="python",)
非固定參數(shù)
若你的函數(shù)在定義時(shí)不確定用戶想傳入多少個(gè)參數(shù),就可以使用非固定參數(shù)
def stu_register(name,age,*args): # *args 會(huì)把多傳入的參數(shù)變成一個(gè)元組形式 print(name,age,args) stu_register("Alex",22) #輸出 #Alex 22 () #后面這個(gè)()就是args,只是因?yàn)闆](méi)傳值,所以為空 stu_register("Jack",32,"CN","Python") #輸出 # Jack 32 ('CN', 'Python')
還可以有一個(gè)**kwargs
def stu_register(name,age,*args,**kwargs): # *kwargs 會(huì)把多傳入的參數(shù)變成一個(gè)dict形式 print(name,age,args,kwargs) stu_register("Alex",22) #輸出 #Alex 22 () {}#后面這個(gè){}就是kwargs,只是因?yàn)闆](méi)傳值,所以為空 stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong") #輸出 # Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}
局部變量
name = "Alex Li" def change_name(name): print("before change:",name) name = "金角大王,一個(gè)有Tesla的男人" print("after change", name) change_name(name) print("在外面看看name改了么?",name)
輸出
before change: Alex Li after change 金角大王,一個(gè)有Tesla的男人
在外面看看name改了么? Alex Li
全局與局部變量
在子程序中定義的變量稱為局部變量,在程序的一開(kāi)始定義的變量稱為全局變量。
全局變量作用域是整個(gè)程序,局部變量作用域是定義該變量的子程序。
當(dāng)全局變量與局部變量同名時(shí):
在定義局部變量的子程序內(nèi),局部變量起作用;在其它地方全局變量起作用。
總結(jié)
以上所述是小編給大家介紹的python3中函數(shù)參數(shù)的四種簡(jiǎn)單用法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python?虛擬環(huán)境遷移到其他電腦的實(shí)現(xiàn)
本文主要介紹了Python?虛擬環(huán)境遷移到其他電腦的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04python實(shí)現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法
這篇文章主要介紹了python實(shí)現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法,可實(shí)現(xiàn)針對(duì)文件夾及文件內(nèi)關(guān)鍵詞的搜索功能,需要的朋友可以參考下2015-06-06Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解
本文主要介紹了Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Python 實(shí)現(xiàn)自動(dòng)導(dǎo)入缺失的庫(kù)
這篇文章主要介紹了Python 實(shí)現(xiàn)自動(dòng)導(dǎo)入缺失的庫(kù),解決導(dǎo)入 Python 庫(kù)失敗的問(wèn)題,本文分三種情況給大家介紹,需要的朋友可以參考下2019-10-10Python/R語(yǔ)言分別實(shí)現(xiàn)斐波那契數(shù)列的示例詳解
這篇文章將通過(guò)兩個(gè)小問(wèn)題:年齡計(jì)算、斐波那契數(shù)列,帶領(lǐng)大家深入淺出的理解兩種語(yǔ)言的基本語(yǔ)法,并用以實(shí)際場(chǎng)景,需要的可以參考一下2022-03-03