Python 函式基礎
一. 什麼是函式
到這裡很多人都懵住了什麼是函式???Python函式其實就是,組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。函式能提高應用的模組性,和程式碼的重複利用率。你已經知道Python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式,函式是對功能的封裝!!!
二. 函式的定義, 函式名, 函式體以及函式的呼叫
語法:
def 函式名(形參列表):
函式體(程式碼塊,return) #return為返回值的意思
函式名(實參列表) #呼叫函式的意思
那麼我們來定義一首詩的功能:我們使用del關鍵字來定義函式,函式的定義語法如下
1 def Shi(): #使用del定義一個函式 2 3 print("床前明月光") 4 print("疑是地上霜") 5 print("舉頭望明月") 6 print("低頭思故鄉")
定義完了,但是這個時候去執行程式你會發現什麼也沒有發生,因為我們只是定義了函式但是還沒有執行這個函式.
函式的呼叫:使用函式名可以呼叫函式,
寫法:
函式名()
這個時候函式體才會給執行
1 Shi() #呼叫Shi函式 2 3 結果: 4 床前明月光 5 疑是地上霜 6 舉頭望明月 7 低頭思故鄉
三. 函式的返回值
1.遇到return,此函式結束,函式後面的東西就會不執行
2.return返回值
return : 在函式執行的時候. 如果遇到return. 直接返回
如果函式什麼都不寫, 不寫return, 沒有返回值. 得到的是None
在函式中間或者末尾寫return, 返回的是None
在函式中寫return 值. 返回一個值.
在函式中可以返回多個返回值, return 值1, 值2, 值3...., 接收的是元組
3.關於返回值
如果return什麼也不用寫或者不寫return,那麼返回的就是None
如果return後面寫了一個值,則呼叫者可以接收一個結果
如果return後面寫了多個結果,則呼叫者可以接收到的是tuple(元組),呼叫者可以直接構結成多個變數
1.函式中遇到return,此函式就會結束,不能再繼續執行
1 def Shi(): #定義一個函式 2 print("床前明月光") 3 print("疑是地上霜") 4 return 5 print("舉頭望明月") #這句話後面的都會不給執行 6 print("低頭思故鄉")
2.return返回值給函式的呼叫者一個訪問結果
1 def shi(): #定於一個函式 2 print("床前明月光") 3 print("疑是地上霜") 4 print("舉頭望明月") 5 print("低頭思故鄉") 6 return '執行結束' #返回值 7 jieshu = shi() 8 print(jieshu) #執行結束
函式的返回值可以是多個結果返回的是元組
1 return '執行結束','hello'
四.函式的引數
引數,函式在呼叫的時候指定具體的一個變數的值,這就是所謂的引數,
函式執行的時候給函式傳遞資訊.
形參:函式宣告的位置的變數
實參:函式呼叫的時候給的具體的值
傳參:把實參交給形參的過程
語法:
def 函式名(引數列表):
函式體
實操,需求:拿出手機想開啟什麼應用就開啟什麼應用,
1 def dakai(ruanjian): 2 print ('拿出手機') 3 print('開啟:',ruanjian) 4 dakai('微信') 5 dakai('QQ') 6 dakai('微博') 7 結果; 8 拿出手機 9 開啟: 微信 10 拿出手機 11 開啟: QQ 12 拿出手機 13 開啟: 微博
nice!搞定了是不是和很棒?,我們在呼叫dakai的時候給ruanjian一個值,然後再執行函式體,
引數分為:
1.形參,寫在函式宣告的位置叫做形參,形式上的一個完整,表示這個函式需要幹嘛幹嘛。。。
1. 位置引數
2. 預設值引數 先位置後預設值
1 dakai(ruanjian): #括號裡的為形參,(ruanjian)
2.實參,在函式呼叫的時候給函式傳遞的值,叫實參,即實際引數,實際執行的時候給函式傳遞的資訊,表示叫函式幹啥幹啥幹啥。。。
1. 位置引數, 按照形參的引數位置, 給形參傳值
2. 關鍵字引數, 按照形參的名字給形參傳值
3. 混合引數. 即用位置引數, 也用關鍵引數
1 dakai('微信') #括號裡的為實參('微信')
3.傳參,給函式傳遞資訊的時候將實際引數交給形式引數的過程稱為傳參
1 def dakai(ruanjian): #ruanjian為形參 2 print ('拿出手機') 3 print('開啟:',ruanjian) 4 dakai('微信') #實參 5 print('關閉') #這裡也代表實參
引數的分類:
1.位置引數
位置引數,意思就是按照位置來賦值的引數叫做位置引數,
1 #需求,錄入班級學生基本資訊,基本資訊有,名字,年齡,性別 2 def xue_sheng_xin_xi(name,age,sex): #定義一個函式,形參有name.age,sex 3 print('請錄入學生資訊:') 4 print(name,age,sex) 5 xue_sheng_xin_xi('小明', '20', '女') #實參
缺點:如果位置輸錯了的話資訊也會跟著錯,必須要按照形參的位置來輸入資訊
2.關鍵字引數
關鍵字引數,利用關鍵字定義的引數,只要記住每個引數的名字就OK了
1 def xue_sheng_xin_xi(name,age,sex): 2 print('請錄入學生資訊') 3 print(name,age,sex) 4 xue_sheng_xin_xi(sex='女',name='YJ',age= '19') #關鍵字引數 5 結果為: 6 請錄入學生資訊 7 YJ 19 女
優點,無論順序怎樣掉亂最後輸出都是正確的排列
3.混合引數
1 def xin_xi(name,age=18,diqu="廣東"): #預設指定了年齡跟地區 2 print('請錄資訊') 3 print(name,age,diqu) 4 xin_xi (diqu='北京',name='YJ',age= '19') #混合引數,地區跟年齡已經指定了現在還能改 5 結果為:YJ 19 北京
也就是說在呼叫函式的時候既可以給出位置引數,也可以指定關鍵字引數
4.預設值引數,在函式宣告的時候,就可以給出的引數的預設值,在呼叫的時候可以給出具體的值,也可以不給值使用預設值。
需求:在錄入資訊的時候,發現大部分為男生,在錄入時如果是男生sex就使用預設值
1 def xin_xi_biao(name,age,sex='男'): 2 print('請錄入資訊') 3 print(name,age,sex) 4 xin_xi_biao('小強',19) 5 xin_xi_biao('小花',19,sex= '女') 6 結果: 7 請錄入資訊 8 小強 19 男 9 請錄入資訊 10 小花 19 女
注意:必須宣告位置引數才能宣告預設引數
2019年11月7日