Python基礎(十四):超實用的 “函數” 講解,真全!
今天就帶著大家開始我們——Python學習的第二課,Python基礎之函數的使用。
在正式講述函數之前,先給大家說明一點:編寫函數就是“面向過程”的方式,編寫類就是“面向對象’的方式。你如果不知道這是啥意思,至少別人提到這2個詞你應該知道是在干嘛。
1. 函數的相關概念解釋
函數是帶有特有名字的代碼塊兒,用于幫助我們實現具體的功能。在正式講述Python函數之前,這里首先給大家講述一下函數的概念、好處和注意事項。
概念: 將一組邏輯語句封裝在方法體中,對外暴露方法名;
好處: 隱藏了實現細節,提高代碼的重用性;
注意事項: 編寫并調用一個函數,我們必須要知道① 函數的功能;② 函數名;
2. 函數的語法結構拆解
說了真么多,那么怎么樣編寫一個函數呢?這就涉及到函數的語法結構了。
# 定義函數 def 函數名(形式參數1,形式參數2,...): """文檔描述""" 函數體 return 值 # 函數調用 函數名(實際參數1,實際參數2,...)
哈哈,對于沒有學習函數的同學來說,是不是一臉茫然?接著我給大家講解一下每一部分的含義,做一個大拆解。
def: 它是定義函數的關鍵字,看到這個關鍵字,表示我們定義了一個函數;
函數名: 類似于我們定義一個變量。函數名直接指向的是函數的內存地址,表示對函數體代碼的引用,因此我們可以直接通過函數名,來調用函數,實現既定功能;
括號: 括號內用于參數傳遞,但是該參數是可有可無的;
冒號: 這是語法結構,沒有為什么,這個冒號要一再強調,不能省略;
""“文檔描述”"": 用于描述該函數的功能,介紹一些參數信息,不是必須的,但是為了自己和他人以后能夠看明白,建議加上;
函數體: 用于實現特定功能的代碼塊兒;
return 值: 定義函數的返回值,return是可有可無的。
3. 返回值
上面我們已經知道:函數的返回值是可有可無的,有時候我們只需要直接顯示輸出,但有時候我們需要利用返回值,做一些其他的操作。
下面的演示,可能會涉及到”傳參‘,不明白不要緊,咋們后面會慢慢講述。
比如:我們只想做一個簡單的自我介紹,我們直接顯示輸出就好。
name = "黃同學" age = 18 addr = "湖北" def my_intro(name,age,arrd): print(f"我的名字是{name}") print(f"我今年{age}歲") print(f"我來自{addr}") my_intro(name,age,addr)
結果如下:
比如:求黃同學語數外三科的平均成績,后面我要利用這個平均成績,做一個匯報。
chinese = 91 math = 95 english = 90 def age_score(chinese,math,english): avg = (english + math + chinese) / 3 return avg avg = age_score(chinese,math,english) print(f"我的平均成績是:{avg}")
結果如下:
3. 傳遞參數
觀察函數的語法格式,函數名后面跟著一個括號,括號中可以傳遞參數,也可以不傳遞參數。
對于一個簡單的函數,我們不需要傳遞任何參數,當然也沒有返回值。這樣的函數無法實現復雜的功能,很簡單,但我們需要了解。
def func1(): print("今天天氣真是好!") func1()
結果如下:
有時候為了是的代碼的可擴展性更高,需要給函數傳遞參數,來幫助我們實現更復雜的功能。在詳細講述有參傳遞之前,我們用一個簡單的案例(如圖所示),講述“形參”和“實參”這兩個概念。
name = "黃同學" def func2(name): print(f"我的名字叫做:{name}") func2(name)
結果如下:
上面的代碼中,我給大家詳細的標注了“形參”和“實參”的位置,下面來給它們下個定義。
形參: 函數完成某個功能,所需的一項信息;
實參: 調用函數時,傳遞給函數的具體信息;
總結一下:函數定義中傳入參數,叫做形參。調用函數時,傳入的參數,叫做實參。
某個函數為了實現更復雜的功能,有時候可能傳遞了多個形參,那么在進行函數調用時,也應該傳遞多個實參。函數傳遞實參的方式有很多:位置實參、關鍵字實參、默認值。
位置實參指的是,實參傳遞順序,和形參傳遞順序完全一致。
name = "黃同學" age = 18 addr = "湖北" def my_intro(name,age,addr): print(f"我的名字是{name}") print(f"我今年{age}歲") print(f"我來自{addr}") my_intro(name,age,addr)
結果如下:
如果實參傳遞順序,和形參傳遞順序弄錯了,那就很尷尬了。
關鍵字實參指的是,在進行函數調用時,傳遞一個名稱值對(類似于字典的鍵值對),直接將形參和實參關聯起來,此時就不用考慮實參的傳遞順序了。
name = "黃同學" age = 18 addr = "湖北" def my_intro(name,age,addr): print(f"我的名字是{name}") print(f"我今年{age}歲") print(f"我來自{addr}") my_intro(age=age,name=name,addr=addr)
結果如下:
有時候,可以給每個形參指定默認值,應為它是永久不變的。此時在調用函數時,就不用傳遞該形參對應的實參。有一點需要注意:默認值形參一般放在所有形參之后。
比如:我們介紹自己的身體情況時,我們的名字肯定是永遠不變的,但是體重是會變的。
weight = 80 def my(weight,name="黃同學"): print(f"我的名字是:{name}") print(f"我今天的體重是:{weight}kg") my(weight)
結果如下:
Python 面向對象編程
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。