關于Python函數(shù)的定義和參數(shù)
什么是函數(shù)?
以前我們學過數(shù)學函數(shù)都知道,函數(shù)就是一種映射的表現(xiàn)形式,一個自變量會有與其相對應的因變量,但是Python中的函數(shù)跟數(shù)學上是不一樣的,Python中的函數(shù)我們可以理解成是一種具有功能的包裝塊,也就是封裝具有某一種功能的代碼塊。其性質(zhì)是一段封裝好的,可以重復使用的代碼,提取保存起來,然后一個獨一無二的名字,只要知道名字就可以調(diào)用該函數(shù)
Python中的函數(shù)定義
定義函數(shù)需要用 def 關鍵字實現(xiàn)
#定義函數(shù) def 函數(shù)名(): 函數(shù)體(即該函數(shù)的具體功能的代碼/代碼塊) #調(diào)用函數(shù) 函數(shù)名() # 執(zhí)行函數(shù)內(nèi)的代碼
對比一下C語言,我在C語言定義函數(shù)是要標明函數(shù)的類型的,比如void類型、int類型、指針類型等等……與其相對應的類型要有返回值;而在Python中不需要這么麻煩,直接def+函數(shù)名就行了,其返回值是可以自己去定義的,可以這么說吧def 關鍵字包含了所有類型的函數(shù),返回值可以為int、float、bool等等……
使用原則:縮進法則
示例:
#定義函數(shù) def hello(): print('hello word') #調(diào)用函數(shù) hello() #輸出結(jié)果:hello word
注意事項:
函數(shù)名的命名方式和變量是一致的
函數(shù):不能漏寫
函數(shù)內(nèi)的縮進必須一致
函數(shù)必須先定義再調(diào)用
函數(shù)內(nèi)容不能為空
學過C語言這些注意事項應該都懂的,就不多說了...
函數(shù)的參數(shù)(帶參數(shù)的函數(shù))
(1)定義
參數(shù)的分類:
形式參數(shù):沒有實際數(shù)據(jù),只是先占個位置 --> 定義時使用
實際參數(shù):有實際數(shù)值,在使用時取代形參 --> 調(diào)用時使
使用過程:
def 函數(shù)名(形式參數(shù)/形參):
函數(shù)體(即該函數(shù)的具體功能的代碼/代碼塊)
函數(shù)名(實際參數(shù)/實參)
在使用的時候,真正起作用的是實參,而形參只是在函數(shù)定義的時候進行的所有方式
(2)必須參數(shù)(又叫位置參數(shù))
從名字就可以看出,這一類參數(shù)形參和實參的位置要相對應,并且類型還有一致的。
示例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)默認參數(shù)
概念:在函數(shù)定義的時候, 就一經(jīng)寫好參數(shù)值了, 在后期調(diào)用函數(shù)的時候 , 就可以不進行傳參 , 如果在調(diào)用函數(shù)的時候也將該參數(shù)進行傳遞的化 , 那么原本的參數(shù)值將會被覆蓋掉。
注意事項:定義默認參數(shù)一定要把默認參數(shù)放在位置參數(shù)的后面,否則就會報錯
示例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
這里可以看出我自行輸入一個實參,結(jié)果這個實參會把原來的默認參數(shù)的值給覆蓋掉,輸出結(jié)果也是不一樣的。
(4)關鍵字參數(shù)
概念:就是指使用形式參數(shù)的名字來確定輸入的參數(shù)值,不再需要與形參的位置完全一致,只要將參數(shù)名寫正確
格式:參數(shù)名 = 參數(shù)值
注意事項:當關鍵字與其他參數(shù)一起出現(xiàn)時 ,關鍵字參數(shù)必須在最后 , 傳遞的參數(shù) , 必須是除位置參數(shù)外的其他參數(shù)。
def ff(name,age,num): print(f''' --------個人信息---------- 名字:{name} 年齡:{age} 學號:{num} -----------end----------- ''') ff(name='小sao',num=220064015,age=18) #輸出結(jié)果: ''' --------個人信息---------- 名字:小sao 年齡:18 學號:220064015 -----------end----------- '''
#如果這樣的話就會報錯 ff(name='小sao',18,num=220064015)
是因為關鍵字參數(shù)再必須參數(shù)的前面,所以報錯
(5)可變長參數(shù)
5.1單星號可變
作用:一個形參可以接收多個參數(shù)值
方式:在參數(shù)名前面加上一個 *, 該參數(shù)就是可變參數(shù) , 就可以接收多個參數(shù)值, 也可以沒有。 接收的實參必須是位置參數(shù)的形式
注意事項:該參數(shù)接收多余的參數(shù)值 , 全部保存到元組當中
def ff(name,age,*other): print(name,age) print(other) ff('Jack',19,'Amy',18,'ww',88)
5.2雙星號可變
方式:在參數(shù)名前面加上一個 ** , 該參數(shù)就是可變參數(shù) , 就可以接收多個參數(shù)值, 也可以沒有。 接收的實參必須是關鍵字參數(shù)
該參數(shù)接收到的參數(shù)值 , 以字典的形式保存 , 其中 , 參數(shù)名保存為鍵(key) , 參數(shù)值保存為(value)
注意事項:該參數(shù)接收多余的參數(shù)值 , 全部保存到字典當中
def ff(**p): print(p) ff(name='Jack',num=18,hj=99) #輸出結(jié)果:{'name': 'Jack', 'num': 18, 'hh': 99}
到此這篇關于關于Python函數(shù)的定義和參數(shù)的文章就介紹到這了,更多相關Python函數(shù)定義參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python torch.utils.data.DataLoader使用方法
這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04