1. 程式人生 > >Python 函式基礎

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日