函式
這裡所的 函式 並不是我們接觸的數學上的函式
函式是最基本的一種**抽象的方式,是組織好的可重複使用的,用來實現單一或相關聯功能的**段。
函式是對做相似的事情或相似的動作進行封裝,它能提高應用的模組性和**的重複利用率。我們要封裝好乙個函式,首先要學會對事務進行抽象,抽象是數學中非常常見的概念。
舉個例子:
計算階乘,比如:1 *2 * 3 * … * 10,寫起來十分不方便,我們為了簡便可以寫成10!。再如求和公式 [公式] 等同於1 + 2 + 3 + … + 100;
抽象非常強大,借助抽象,我們不用關心底層的具體計算過程,而直接在更高的層次上思考問題。
寫電腦程式也是一樣,函式就是最基本的一種**抽象的方式。
python不但能非常靈活地定義函式,而且本身內建了很多有用的函式,可以直接呼叫,如 print() 能輸出任何物件,len()能計算不同型別物件的長
一、函式命名規則
函式是乙個變數,所以它的命名規則與變數相同:
1、變數名稱只能由(大小寫字母、數字、_)有效符號組成
2、不要使用數字開頭!!!
3、不要使用關鍵字或者保留字!!!
4、變數命名盡量有意義
5、推薦使用下劃線命名法
二、函式的定義
def 函式名稱 (引數):
函式內容
返回值(可以沒有)
三、函式的分類
1.有無返回值
返回值 即return
分為:有返回值函式:
①:使用return關鍵字返回結果
②:函式遇到return,立即返回
無返回值函式
2.有無引數
有參函式
①:引數個數,根據情況任意
②:引數型別,是任意的型別
無參函式
3.函式定義者
系統函式:
由官方定義的函式:
如 input print type
第三方定義的函式:
需要安裝模組,才能使用
pip install 模組名稱(linux需要先安裝pip)
自定義函式:
也就是我們自己定義的函式(使用def)
四、函式呼叫
函式本質其實就是物件
呼叫就是先壓棧 然後使用,走完整個函式流程之後,將函式出棧。
壓棧(進棧):將函式放入棧中執行。
彈棧(出棧):函式執行完成後出棧。
五、引用傳遞和值傳遞
預設值引數:
如果乙個函式的引數,在大多數情況下,值是固定的乙個值,此時可以使用預設值引數
這個時候,如果不傳該引數,值就取預設的,如果傳遞了,則按照傳遞的算。
注意:預設值引數,一定要寫在普通引數之後
可變引數:
在python,如果乙個函式中引數可能有很多(這些引數,也可以沒有),建議將這種引數設定為可變引數
引數名稱(習慣性args)
注意:可變引數預設是以元組封裝所有引數
命名(關鍵字)引數:
關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict
七、遞迴
遞迴其實就是出入棧的過程,自己呼叫自己。
這樣看來雖然是無限迴圈了,可可以在函式中寫入乙個判斷語句,讓其在該停止的地方使用return 停止下來
就像查詞典一樣,不會乙個詞,查第乙個,查完第乙個裡還有不會的詞,查二個······以此類推。(直到有乙個全會,再收回來)
用以下題目來解析遞迴,可以用遞迴,也可以用普通的迴圈
#有一對兔子,從出生後的第3個月起,每個月都生一對兔子,
n = int(input(「請輸入月份:」))
def rab():
a = 1
b = 1
c = 0
if n >=3:
for i in range(2,n):
c = a + b
a = b
b = c
return c
else:
return 1
print(「第」,n,「個月有」,rab(),「對兔子」)
#遞迴def rabit(n):
if n == 1 or n == 2:
return 1
return rabit(n-1)+rabit(n-2)
Python函式入門和使用
函式是帶名字的 塊,用於完成具體的工作。要執行函式定義的特定任務,可呼叫該函式。需要在程式中多次執行同一項任務時,你無需反覆編寫完成該任務的 而只需呼叫執行該任務的函式,讓python執行其中的 1 定義函式 1 定義乙個函式具有以下的規則 任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於...
python函式入門和使用
什麼是函式 函式就是過程 在python中函式定義過程 def 函式名 括號中可寫引數,也可不寫 函式本體 return 返回值 可寫可不寫,根據具體情況 函式分類 是否存在返回值 有返回值的函式 可以通過return關鍵字返回所定義返回值,也可將函式本身定義為返回值,便可實 現迴圈效果,直到遇到返...
python函式入門和使用
使用return關鍵字返回結果 函式遇到return關鍵字,則立刻返回引數的個數,根據情況任意 引數的型別,是任意型別由官方定義的函式 print input type需要安裝這些模組,才能使用 pip install 模組名稱 pip python install package 我們寫的函式 注...