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