Python建立與呼叫函式

2021-10-04 09:37:16 字數 2927 閱讀 4368

今天我們來講python裡的建立與呼叫函式。

先講建立函式,建立函式使用def關鍵字,就是define的縮寫。

上**看看吧:

def

say(info)

:print

(info)

這就是乙個名叫say的函式,我們來看看這個函式的結構:

def 函式名 (引數列表):

函式體注意,def建立函式也需要縮排。現在我們說說引數的傳遞。

函式的引數在定義時可以指定預設值,當函式被呼叫時,如果沒有傳入對應的引數值,則使用函式定義時的預設值替代。

可選引數一般都放置在非可選引數的後面,即定義函式時,先給出所有非可選引數,然後再分別列出每個可選引數及對應的預設值。

python語言同時支援函式按照引數名稱方式傳遞引數。

def 函式名(非可選引數列表, 可選引數 = 預設值):

函式體剛剛那個例子的info就是乙個非可選引數。非可選引數在呼叫的時候必須給乙個值,否則會報錯。我們再舉個例子:

choice =

input

('選擇1還是2?'

)def

game

(choice,win =

true):

if choice ==

'1':

win =

false

print

('你沒贏'

)if choice ==

'2':

win =

true

print

('你贏了'

)

執行一下,什麼都沒發生,對吧。因為函式在沒有呼叫的時候**塊是不會被執行的。所以我們得呼叫。python呼叫函式很簡單,就是像這樣:

def

say(info)

:print

(info)

say(

'fd'

)

知道怎麼呼叫了吧。其實就是:

函式名(引數)

這裡要講到兩個概念,函式上面的那個info叫做形參;呼叫時這個』fd』叫實參。傳遞函式就是將實參的值傳遞到形參。一般是一一對應地傳遞,比如這樣:

def

say(info,count)

:for i in

range

(int

(count)):

print

(info)

say(

'我很好',5

)

好玩吧,我們現在再看看另外兩種引數型別:

defa(

*d):

print

(sum

(d))a(3

,2,54

)

這個是可變引數型別,就是說可以賦多個值給它。我們可以看看它的型別:

defa(

*d):

print

(type

(d))a(3

,2,54

)

是乙個元組,對吧?

關鍵字引數,這種引數就是print函式裡的end引數,end就叫做關鍵字引數,我們創乙個函式來看看:

def

end_

(**b)

:print

(b)end_(end =

123)

然後這種的話,它就是乙個字典型別,大家也應該看到了列印的結果。

現在我來介紹乙個關鍵字:return。

如果需要返回值,使用保留字return和返回值列表。函式可以沒有return語句,函式體結束後會將控制權返回給呼叫者。

我們舉個例子:

def

fun():

a =5return a

fun(

)print

(fun(

))

看到了嗎,return函式返回值,在直接呼叫的時候並沒反應。我們再來看看不返回的結果:

def

fun():

a =5print

(a)fun(

)print

(fun(

))

第二個是不是none?

我們再講乙個很重要的概念,那就是全域性變數與區域性變數。

區域性變數就是比如這種:

def

fun():

a =45

這個a就是區域性變數,當函式呼叫完,程式就會釋放掉函式裡的所有區域性變數,使得函式內的區域性變數無法在外部使用。

def

fun():

a =45print

(a)

報錯了吧!

全域性變數就是我們以前學的那些變數,都叫全域性變數。全域性變數可以在整個程式中使用。

那全域性變數如果要在函式裡使用,就要用關鍵字global來宣告,比如這樣:

a =

45def

fun():

global a

a =56fun(

)print

(a)

a的值就改變了吧。

有些情況,全域性變數不用宣告即可在函式中用,例:

a =[1

,5]def

fun():

5)print

(a)

是不是加了?這種特殊情況我也缺乏經驗,所以大家多試試就行了。

一般考試會出類似這樣迷惑人的題。

a =

45def

fun():

a =42print

(a)

有比這種更難的,不過我有點忘了…

python中的函式建立與呼叫

1 函式的定義 函式是邏輯結構化和過程化的一種程式設計方法 2 函式的定義方法 下面,簡單舉乙個例子 定義最大值函式 def 定義函式的關鍵字 max num 函式名 def max num x int y int int 此處的x y為形參 呼叫函式函式名 形參 呼叫函式時的引數,實參。一般實參要...

Python(五)建立並呼叫函式

該系列文章用來記錄一下自己在b站學習python時,進行上機練習用的 使用 pycharm 2020.3.3 慕課 python語言基礎與應用 北京大學 陳斌 字幕校對 建立乙個函式,接受乙個引數n n 100 判斷這個數是否為水仙花數 水仙花數 滿足如果這個數為m位數,則每個位上的數字的m次冪之和...

python 函式的定義與呼叫

函式的定義 def 函式名 def func print 函式的功能 函式的呼叫 函式名 遇到函式定義,簡單記錄一下 遇到了函式的呼叫,才會進入函式去執行 執行結束以後,會回到函式被呼叫的地方 繼續往下走 雙層巢狀的函式 看圖,理解直譯器的執行順序 理解輸出的結果 多層巢狀的函式 理解執行順序 輸出...