Python中函数的介绍以及用法
1.函數的介紹
在開發程序時,需要某塊代碼多次,但是為了提高編寫的效率以及代碼的重用,所以把具有獨立功能的代碼塊組織為一個小模塊,這就是函數
定義函數的規則:
2.函數的定義和調用
格式如下:
def 函數名():執行語句 函數名() #調用函數實例:
def info():print("人生苦短我用python") info()定義了函數之后,就相當于有了一個具有某些功能的代碼,想要讓這些代碼能夠執行,需要調用它
調用函數很簡單的,通過 函數名() 即可完成調用
每次調用函數時,函數都會從頭開始執行,當這個函數中的代碼執行完畢后,意味著調用結束了
當然了如果函數中執行到了return也會結束函數
3.函數的參數
1.首先定義一個帶有參數的函數,并且調用這個函數
實例:
def test1(a,b): # a,b為參數c=a+bprint(c) test1(1,2) # 調用帶有參數的函數時,需要在小括號中,傳遞數據定義時小括號中的參數,用來接收參數用的,稱為 “形參”
調用時小括號中的參數,用來傳遞給函數用的,稱為 “實參”
4.參數的分類
函數參數大概分為四種:位置參數關鍵字參數缺省參數不定長參數1.位置參數
格式如下:
def 函數名(參數1,參數2):代碼塊 函數名(值1,值2)實例:
def fun(a,b):print("a:",a)print("b:",b) fun(2,3)
2.關鍵字參數
格式如下:
def 函數名(參數1,參數2):代碼塊 函數名(參數1=值1,參數2=值2)實例:
def fun(a,b):print("a:",a)print("b:",b) fun(a=2,b=3)參數調用時可以改變傳參順序,如果有位置參數需要位置參數放在關鍵字參數前面
實例:
def fun(a,b):print("a:",a)print("b:",b) fun(3,b=2)如果關鍵字參數傳參要在位置參數之前,將會報錯
實例:
def fun(a,b):print("a:",a)print("b:",b) fun(a=3,2)
3.缺省參數
在形參中默認有值的參數,稱之為缺省參數(也稱為默認參數)
實例:
def printinfo(name,age=20):print("name:",name)print("age:",age) printinfo(name="jack")調用函數時,缺省參數的值如果沒有傳入,則取默認值(形式參數),如果傳入,則取實際參數
缺省參數一定要位于位置參數的最后面
4.不定長參數
有時可能需要一個函數能處理比當初聲明時更多的參數, 這些參數叫做不定長參數,聲明時不會命名。
格式如下:
def printinfo(*args,**kwargs):print("args:",args)print("kwargs:",kwargs) printinfo(參數)加了星號(*)的變量args會存放所有未命名的變量參數,args為元組
加**的變量kwargs會存放命名參數,即形如key=value的參數, kwargs為字典
01.不定長參數*args
實例:
def printinfo(*args):print("args:",args) printinfo(100,200,300,400)
02.不定長參數* * kwargs
實例:
def printinfo(**kwargs):print("kwargs:",kwargs) printinfo(a=100,b=200,c=300,d= 400)
5.函數位置順序
格式如下:
def fun(位置參數,*args,缺省參數,**kwargs):代碼塊 fun(參數值)實例:
def sun(a,*args,b=22,**kwargs):print("a:",a)print("args:",args)print("b:",b)print("kwargs:",kwargs) sun(100,200,300,b=2,m=3,n=4)如果很多個值都是不定長參數,那么這種情況下,可以將缺省參數放到 *args的后面, 但如果有**kwargs的話,**kwargs必須是最后的
6.函數的返回值
場景:
我給兒子10塊錢,讓他給我買包煙。這個例子中,10塊錢是我給兒子的,就相當于調用函數時傳遞到參數,讓兒子買煙這個事情最終的目標是,讓他把煙給你帶回來然后給你對么,,,此時煙就是返回值
格式如下:
def sum():代碼塊return 值 sum()實例:
def sum(a,b):return a+b result = sum(1,2) #保存函數的返回值 print(result)
1.多個return
實例:
def create_nums(num):print("---1---")if num == 100:print("---2---")return num + 1 # 函數中下面的代碼不會被執行,因為return除了能夠將數據返回之外,還有一個隱藏的功能:結束函數print("return執行之后不會繼續執行")else:print("wewe")return "輸入不是100" print(create_nums(100))一個函數中可以有多個return語句,但是只要有一個return語句被執行到,那么這個函數就會結束了,因此后面的return沒有什么用處
2.返回多個數據
實例:
def divid(a, b):add = a+b #相加reduct = a-b #相減return add, reduct #默認是元組 result = divid(5, 2) print(result)return后面可以是元組,列表、字典等,只要是能夠存儲多個數據的類型,就可以一次性返回多個數據
7.函數的類型
函數根據有沒有參數,有沒有返回值,可以相互組合,一共有4種: 1. 無參數,無返回值 2. 無參數,有返回值 3. 有參數,無返回值 4. 有參數,有返回值1.無參數,無返回值的函數
此類函數,不能接收參數,也沒有返回值,一般情況下,打印提示燈類似的功能,使用這類的函數
實例:
def printMenu():print('--------------------------')print(' xx涮涮鍋 點菜系統')print('')print(' 1. 羊肉涮涮鍋')print(' 2. 牛肉涮涮鍋')print(' 3. 豬肉涮涮鍋')print('--------------------------')2.無參數,有返回值的函數
此類函數,不能接收參數,但是可以返回某個數據,一般情況下,像采集數據,用此類函數
實例:
def getTemperature():# 這里是獲取溫度的一些處理過程# 為了簡單起見,先模擬返回一個數據return 24 tem=getTemperature() print(tem)
3.有參數,無返回值的函數
此類函數,能接收參數,但不可以返回數據,一般情況下,對某些變量設置數據而不需結果時,用此類函數
4.有參數,有返回值的函數
此類函數,不僅能接收參數,還可以返回某個數據,一般情況下,像數據處理并需要結果的應用,用此類函數
實例:
# 計算1~num的累積和 def calculateNum(num):result = 0i = 1while i<=num:result = result + ii+=1return result cal=calculateNum(100) print(cal)
8.函數的嵌套
一個函數里面又調用了另外一個函數,這就是所謂的函數嵌套調用
實例:
def testb():print("testb start")print("testb testb 執行")print("testb end") def testa():print("testa start")testb()print("testa end") testa()如果函數A中,調用了另外一個函數B,那么先把函數B中的任務都執行完畢之后才會回到上次 函數A執行的位置
9.匿名函數
lambda函數也叫匿名函數,即函數沒有具體的名稱
實例:
g = lambda x :x+1 print(g(1))lambda函數可以賦值給變量,默認是返回的,所以不用再加return關鍵字
例如g = lambda x:x+1,可以看成如下函數,冒號前是參數,可以有多個,用逗號隔開,冒號右邊的返回值
10.函數小練習
1.寫一個函數求三個數的和,并返回結果
2.寫一個函數求三個數的平均值,并返回結果
3.寫一個函數求每個數與平均值之間的差,并返回結果
總結
以上是生活随笔為你收集整理的Python中函数的介绍以及用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中集合的介绍以及常见操作
- 下一篇: Python中局部变量和全局变量的详解