其實(shí),寫(xiě)這個(gè)是為了督促自己看書(shū)……然后 ……其實(shí)沒(méi)有然后了,人一松懈下來(lái),就……ε=(′ο`*)))唉 第三章 函數(shù) ①def語(yǔ)句和參數(shù) 先舉一個(gè)簡(jiǎn)單的例子:
輸出: Hello World! Hello World! Hello World! 注意:一定要記得冒號(hào)(被無(wú)數(shù)次報(bào)錯(cuò),內(nèi)心崩潰,絕望) 好了,上面這種做法很類(lèi)似在C++中的這種操作
所以,我們看到,在括號(hào)里是沒(méi)有參數(shù)的。 如果僅僅可以這樣,那這種語(yǔ)言……還不如沒(méi)有…… 所以,理所當(dāng)然,括號(hào)里也可以出現(xiàn)參數(shù),舉例如下:
輸出: Hello Alice! Hello Bob! ------日常歪樓------- 對(duì)了,忘了提一點(diǎn),在Python中,與C++不同,寫(xiě)在不同行的輸出在運(yùn)行的時(shí)候,輸出的內(nèi)容也會(huì)在不同行,如果要同行輸出,就需要用逗號(hào)隔開(kāi)。 比如:
最后得到的是: Hello World! 這是因?yàn)閜rint()函數(shù)自動(dòng)在傳入字符串末尾添加了換行符。 但是 : 設(shè)置end關(guān)鍵字參數(shù),像這樣,也可以實(shí)現(xiàn):Hello World! 代碼如下:
同時(shí),注意,還有別的操作,像這樣: ---------言歸正傳-------在上面的函數(shù)中,有一個(gè)名為name的變量當(dāng)函數(shù)被調(diào)用的時(shí)候,參數(shù)就儲(chǔ)存在這個(gè)變量中。 ②返回值和return語(yǔ)句 還是舉例說(shuō)明:
輸出主要看運(yùn)氣…… 比如,我是這種: Concentrate and ask again return語(yǔ)句包括: return關(guān)鍵字; 函數(shù)應(yīng)該返回的值或表達(dá)式。 在上面的函數(shù)里函數(shù)的名字是:getAnswer,參數(shù)的名字是:answerNumber。 這里也可以寫(xiě)成一行:print(getAnswer(random.randint(1,9))) 如↑所示。 ③None值 None值就是沒(méi)有值,要注意首字母大寫(xiě) None是NoneType數(shù)據(jù)類(lèi)型的唯一值(在其他語(yǔ)言中,被稱(chēng)為null、nil或undefined) ④局部和全局作用域 作用域很重要,灰常重要,格外重要: 全局作用域中的代碼不能使用任何局部變量; 但是局部作用域可以訪(fǎng)問(wèn)全局變量; 一個(gè)函數(shù)的局部作用域中的代碼,不能使用其他局部作用域中的變量; 如果在不同的作用域中,你可以用相同的名字命名不同的變量。 1、局部變量不能在全局作用域內(nèi)使用 比如:
報(bào)錯(cuò)信息如下: Traceback (most recent call last): File '/usercode/file.py', line 4, in <module> print(eggs) NameError: name 'eggs' is not defined 其實(shí)也就是說(shuō),eggs變量只屬于spam()調(diào)用所創(chuàng)建的局部作用域。在程序執(zhí)行從spam返回后,該局部作用域就被銷(xiāo)毀了,不再有名為eggs的變量 2、局部作用域不能使用其他局部作用域內(nèi)的變量 比如:
輸出: 99 可以很容易發(fā)現(xiàn),在bacon中對(duì)eggs的賦值被完完全全忽略了……spam和bacon是兩個(gè)局部作用域,所以bacon中的eggs與spam中的eggs的唯一關(guān)系就是名字恰好一樣…… 3、全局變量可以在局部變量中讀取
輸出: 42 42 在這里eggs就在全局變量中,所以局部作用域spam可以讀取 4、名稱(chēng)相同的局部變量和全局變量
輸出: bacon local spam local bacon local global 這樣寫(xiě)使代碼可讀性降低,所以強(qiáng)烈建議盡量不要取相同的名字。 ⑤global語(yǔ)句 舉例如下:
輸出: spam 如何區(qū)分局部變量和全局變量 1、如果變量在全局作用域中使用(即在所有函數(shù)之外),它就總是全局變量 2、如果在一個(gè)函數(shù)中,有針對(duì)該變量的global語(yǔ)句,它就是全局變量 3、否則,如果該變量用于函數(shù)中的賦值語(yǔ)句,它就是局部變量 4、如果該變量沒(méi)有用在賦值語(yǔ)句中,就是全局變量 舉例:
輸出: spam ⑥異常處理 用try except語(yǔ)句調(diào)試,具體方法和C++里調(diào)試的方法區(qū)別不大,就是截取片段來(lái)試,醬紫。 ''' 然后接下來(lái),書(shū)里是一個(gè)很……的小程序,就不放上來(lái)了,或者哪天實(shí)在無(wú)聊敲一下。 所以就到這里啦。(?ω?) ''' |
|
來(lái)自: Four兄 > 《Python筆記》