函數 Python從入門到放棄

爲何我要使用函數

0) 能夠下降代碼量(調用函數只須要一行,而拷貝黏貼須要N倍代碼)
1) 能夠下降維護成本(函數只需修改def部份內容,而拷貝黏貼則須要每一處出現的地方都做修改)
2) 使序更容易閱讀(沒有人會但願看到一個程序重複一萬行「I love you」)安全

 

 建立函數

使用「def」關鍵字,要注意函數名後邊要加上小括號「()」,而後小括號後邊是冒號「:」,而後縮進部分均屬於函數體的內容,例如:函數

1. def MyFun():spa

2.     # 我是函數體對象

3.     # 我也是函數體變量

4.     # 咱們都屬於函數MyFun()程序

5. 命名

6. # 噢,我不屬於MyFun()函數的了安全性

關鍵字參數

若是你有一些有許多參數的函數,您想要指定參數中的一些,那麼,你能夠經過爲參數命名來爲它們賦值——這叫作參數關鍵字——咱們使用名稱(關鍵字)而不是位置(咱們一直使用的)來指定函數的參數。工作

這有兩個優點,一是,使用函數容易,由於咱們不須要擔憂參數的順序。二是,若是其餘參數有默認參數值,咱們能夠只給咱們想賦值的參數賦值。閱讀

1. def func(a, b=5, c=10):

2. print('a爲', a, '和b爲', b, '和c爲', c)

3. 

4. func(3, 7)

5. func(25, c=24)

6. func(c=50, a=100)

輸出:
a爲3 和b爲7 和c爲10
a爲25 和b爲5 和c爲24
a爲100 和b爲5 和c爲50

它是如何工做的:
名爲func的函數中有一個參數沒有默認參數值,後面兩個參數有默認參數值。

第一次使用func(3, 7),參數a獲得值3,參數b獲得值7,參數c獲得默認值10。

第二次使用func(25, c=24),參數a按照參數的位置獲得值25,而後參數c按照參數名,也就是參數關鍵字,獲得值24,變量b獲得默認值5。

第三次使用func(c=50, a=100),咱們爲全部給定的值使用了參數關鍵字。注意,咱們爲參數c指定值是在參數a以前,儘管在函數定義中a在c前。

 

關於無返回值時

若是沒有使用return語句指定返回值,Python也不是什麼都不返回,ta會返回一個none對象,因此咱們說Python全部的函數都有返回值

返回多個不一樣的類型值

默認用逗號隔開,是一元組的形式返回。也能夠用列表包含起來返回。

全局變量

不到萬不得已不要使用全局變量

1.代碼可讀性變差。

2.代碼安全性下降。

global關鍵字

但願在函數中修改全局變量的值時使用global修飾該變量。

nonlocal關鍵字

在嵌套函數中,若是但願在內部函數改變外部海曙的局部變量,用nonlocal修飾該變量

關於調用內部函數返回的一些問題(易混淆)

def funout():

def funin():

Print(‘你成功訪問到了in’)

return funin()

這時想訪問funin()直接調用funout()便可

def funout():

def funin():

Print(‘你成功訪問到了in’)

return funin

這時想訪問funin(),須要funout()()才能夠訪問。

也能夠「曲線救國」

go = funout()

go()

相關文章
相關標籤/搜索