關(guān)于Python函數(shù)的定義和參數(shù)
什么是函數(shù)?
以前我們學(xué)過(guò)數(shù)學(xué)函數(shù)都知道,函數(shù)就是一種映射的表現(xiàn)形式,一個(gè)自變量會(huì)有與其相對(duì)應(yīng)的因變量,但是Python中的函數(shù)跟數(shù)學(xué)上是不一樣的,Python中的函數(shù)我們可以理解成是一種具有功能的包裝塊,也就是封裝具有某一種功能的代碼塊。其性質(zhì)是一段封裝好的,可以重復(fù)使用的代碼,提取保存起來(lái),然后一個(gè)獨(dú)一無(wú)二的名字,只要知道名字就可以調(diào)用該函數(shù)
Python中的函數(shù)定義
定義函數(shù)需要用 def 關(guān)鍵字實(shí)現(xiàn)
#定義函數(shù) def 函數(shù)名(): 函數(shù)體(即該函數(shù)的具體功能的代碼/代碼塊) #調(diào)用函數(shù) 函數(shù)名() # 執(zhí)行函數(shù)內(nèi)的代碼
對(duì)比一下C語(yǔ)言,我在C語(yǔ)言定義函數(shù)是要標(biāo)明函數(shù)的類型的,比如void類型、int類型、指針類型等等……與其相對(duì)應(yīng)的類型要有返回值;而在Python中不需要這么麻煩,直接def+函數(shù)名就行了,其返回值是可以自己去定義的,可以這么說(shuō)吧def 關(guān)鍵字包含了所有類型的函數(shù),返回值可以為int、float、bool等等……
使用原則:縮進(jìn)法則
示例:
#定義函數(shù) def hello(): print('hello word') #調(diào)用函數(shù) hello() #輸出結(jié)果:hello word
注意事項(xiàng):
函數(shù)名的命名方式和變量是一致的
函數(shù):不能漏寫
函數(shù)內(nèi)的縮進(jìn)必須一致
函數(shù)必須先定義再調(diào)用
函數(shù)內(nèi)容不能為空
學(xué)過(guò)C語(yǔ)言這些注意事項(xiàng)應(yīng)該都懂的,就不多說(shuō)了...
函數(shù)的參數(shù)(帶參數(shù)的函數(shù))
(1)定義
參數(shù)的分類:
形式參數(shù):沒有實(shí)際數(shù)據(jù),只是先占個(gè)位置 --> 定義時(shí)使用
實(shí)際參數(shù):有實(shí)際數(shù)值,在使用時(shí)取代形參 --> 調(diào)用時(shí)使
使用過(guò)程:
def 函數(shù)名(形式參數(shù)/形參):
函數(shù)體(即該函數(shù)的具體功能的代碼/代碼塊)
函數(shù)名(實(shí)際參數(shù)/實(shí)參)
在使用的時(shí)候,真正起作用的是實(shí)參,而形參只是在函數(shù)定義的時(shí)候進(jìn)行的所有方式
(2)必須參數(shù)(又叫位置參數(shù))
從名字就可以看出,這一類參數(shù)形參和實(shí)參的位置要相對(duì)應(yīng),并且類型還有一致的。
示例1:
def fun(name): print(f'我的名字叫{name}') a=input('輸入:') fun(a)
示例2:
def lisadd(li,li1): li.insert(1,li1) print(li) lis=['蔡徐坤','只因'] lis1=[] for i in range(0,5): a=input('enter') lis1.append(a) if a=='0': break lisadd(lis,lis1)
(3)默認(rèn)參數(shù)
概念:在函數(shù)定義的時(shí)候, 就一經(jīng)寫好參數(shù)值了, 在后期調(diào)用函數(shù)的時(shí)候 , 就可以不進(jìn)行傳參 , 如果在調(diào)用函數(shù)的時(shí)候也將該參數(shù)進(jìn)行傳遞的化 , 那么原本的參數(shù)值將會(huì)被覆蓋掉。
注意事項(xiàng):定義默認(rèn)參數(shù)一定要把默認(rèn)參數(shù)放在位置參數(shù)的后面,否則就會(huì)報(bào)錯(cuò)
示例1:
def fun(r,pi=3.14): s=pi*r**2 print(s) R=int(input('輸入你的半徑:')) fun(R) #輸入 3 #輸出 28.26
示例2:
def fun(r,pi=3.14): s=pi*r**2 print(s) R=int(input('輸入你的半徑:')) fun(R,4) #輸入 3 #輸出 36
這里可以看出我自行輸入一個(gè)實(shí)參,結(jié)果這個(gè)實(shí)參會(huì)把原來(lái)的默認(rèn)參數(shù)的值給覆蓋掉,輸出結(jié)果也是不一樣的。
(4)關(guān)鍵字參數(shù)
概念:就是指使用形式參數(shù)的名字來(lái)確定輸入的參數(shù)值,不再需要與形參的位置完全一致,只要將參數(shù)名寫正確
格式:參數(shù)名 = 參數(shù)值
注意事項(xiàng):當(dāng)關(guān)鍵字與其他參數(shù)一起出現(xiàn)時(shí) ,關(guān)鍵字參數(shù)必須在最后 , 傳遞的參數(shù) , 必須是除位置參數(shù)外的其他參數(shù)。
def ff(name,age,num): print(f''' --------個(gè)人信息---------- 名字:{name} 年齡:{age} 學(xué)號(hào):{num} -----------end----------- ''') ff(name='小sao',num=220064015,age=18) #輸出結(jié)果: ''' --------個(gè)人信息---------- 名字:小sao 年齡:18 學(xué)號(hào):220064015 -----------end----------- '''
#如果這樣的話就會(huì)報(bào)錯(cuò) ff(name='小sao',18,num=220064015)
是因?yàn)殛P(guān)鍵字參數(shù)再必須參數(shù)的前面,所以報(bào)錯(cuò)
(5)可變長(zhǎng)參數(shù)
5.1單星號(hào)可變
作用:一個(gè)形參可以接收多個(gè)參數(shù)值
方式:在參數(shù)名前面加上一個(gè) *, 該參數(shù)就是可變參數(shù) , 就可以接收多個(gè)參數(shù)值, 也可以沒有。 接收的實(shí)參必須是位置參數(shù)的形式
注意事項(xiàng):該參數(shù)接收多余的參數(shù)值 , 全部保存到元組當(dāng)中
def ff(name,age,*other): print(name,age) print(other) ff('Jack',19,'Amy',18,'ww',88)
5.2雙星號(hào)可變
方式:在參數(shù)名前面加上一個(gè) ** , 該參數(shù)就是可變參數(shù) , 就可以接收多個(gè)參數(shù)值, 也可以沒有。 接收的實(shí)參必須是關(guān)鍵字參數(shù)
該參數(shù)接收到的參數(shù)值 , 以字典的形式保存 , 其中 , 參數(shù)名保存為鍵(key) , 參數(shù)值保存為(value)
注意事項(xiàng):該參數(shù)接收多余的參數(shù)值 , 全部保存到字典當(dāng)中
def ff(**p): print(p) ff(name='Jack',num=18,hj=99) #輸出結(jié)果:{'name': 'Jack', 'num': 18, 'hh': 99}
到此這篇關(guān)于關(guān)于Python函數(shù)的定義和參數(shù)的文章就介紹到這了,更多相關(guān)Python函數(shù)定義參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python函數(shù)的定義方式與函數(shù)參數(shù)問(wèn)題實(shí)例分析
- Python定義函數(shù)時(shí)參數(shù)有默認(rèn)值問(wèn)題解決
- Python 函數(shù)用法簡(jiǎn)單示例【定義、參數(shù)、返回值、函數(shù)嵌套】
- Python3.5基礎(chǔ)之函數(shù)的定義與使用實(shí)例詳解【參數(shù)、作用域、遞歸、重載等】
- 在Python中居然可以定義兩個(gè)同名通參數(shù)的函數(shù)
- Python自定義函數(shù)定義,參數(shù),調(diào)用代碼解析
- 詳解Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式
相關(guān)文章
python之基數(shù)排序的實(shí)現(xiàn)
這篇文章主要介紹了python之基數(shù)排序的實(shí)現(xiàn),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07基于Python實(shí)現(xiàn)西西成語(yǔ)接龍小助手
成語(yǔ)接龍是中華民族傳統(tǒng)的文字游戲。本文將用Python制作一個(gè)簡(jiǎn)單的成語(yǔ)接龍小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08python torch.utils.data.DataLoader使用方法
這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python里使用正則表達(dá)式的組嵌套實(shí)例詳解
這篇文章主要介紹了python里使用正則表達(dá)式的組嵌套實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-10-10numpy數(shù)組之讀寫文件的實(shí)現(xiàn)
本文主要介紹了numpy數(shù)組之讀寫文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02