免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
《Python編程快速上手——讓繁瑣的工作自動化》讀書筆記2

其實,寫這個是為了督促自己看書……然后 ……其實沒有然后了,人一松懈下來,就……ε=(′ο`*)))唉

第三章 函數(shù)

①def語句和參數(shù)

先舉一個簡單的例子:

  1. def hello():
  2. print('Hello World!')
  3. hello()
  4. hello()
  5. hello()
輸出:
Hello World!
Hello World!
Hello World!

注意:一定要記得冒號(被無數(shù)次報錯,內(nèi)心崩潰,絕望)

好了,上面這種做法很類似在C++中的這種操作
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void hello()
  4. {
  5. cout<<'Hello World!\n';
  6. }
  7. int main()
  8. {
  9. hello();
  10. hello();
  11. hello();
  12. return 0;
  13. }

所以,我們看到,在括號里是沒有參數(shù)的。
如果僅僅可以這樣,那這種語言……還不如沒有……
所以,理所當然,括號里也可以出現(xiàn)參數(shù),舉例如下:

  1. def hello(name):
  2. print('Hello '+name+'!')
  3. hello('Alice')
  4. hello('Bob')

輸出:
Hello Alice!
Hello Bob!
------日常歪樓-------
對了,忘了提一點,在Python中,與C++不同,寫在不同行的輸出在運行的時候,輸出的內(nèi)容也會在不同行,如果要同行輸出,就需要用逗號隔開。 
比如:
  1. print('Hello ')
  2. print('World!')

最后得到的是:
Hello
World!
這是因為print()函數(shù)自動在傳入字符串末尾添加了換行符。          
但是        :
設置end關鍵字參數(shù),像這樣,也可以實現(xiàn):Hello World!
代碼如下:
  1. print('Hello ',end='')
  2. print('World!')

同時,注意,還有別的操作,像這樣:
  1. print('cats','dogs','mice')
  2. #output:cats dogs mice
  3. print('cats','dogs','mice',sep=',')
  4. #output:cats,dogs,mice
---------言歸正傳-------
在上面的函數(shù)中,有一個名為name的變量當函數(shù)被調(diào)用的時候,參數(shù)就儲存在這個變量中。



②返回值和return語句
 還是舉例說明:
 
  1. import random
  2. def getAnswer(answerNumber):
  3. if answerNumber==1:
  4. return 'It is certain'
  5. elif answerNumber==2:
  6. return 'It is decidedly so'
  7. elif answerNumber==3:
  8. return 'Yes'
  9. elif answerNumber==4:
  10. return 'Reply hazy try again'
  11. elif answerNumber==5:
  12. return 'Ask again later'
  13. elif answerNumber==6:
  14. return 'Concentrate and ask again'
  15. elif answerNumber==7:
  16. return 'My reply is no'
  17. elif answerNumber==8:
  18. return 'Outlook not so good'
  19. elif answerNumber==9:
  20. return 'Very doubtful'
  21. r=random.randint(1,9)
  22. fortune=getAnswer(r)
  23. print(fortune)

輸出主要看運氣……
比如,我是這種:
Concentrate and ask again

return語句包括:
return關鍵字;
函數(shù)應該返回的值或表達式。
在上面的函數(shù)里函數(shù)的名字是:getAnswer,參數(shù)的名字是:answerNumber。
  1. r=random.randint(1,9)
  2. fortune=getAnswer(r)
  3. print(fortune)
這里也可以寫成一行:
print(getAnswer(random.randint(1,9)))

如↑所示。



③None值
None值就是沒有值,要注意首字母大寫
None是NoneType數(shù)據(jù)類型的唯一值(在其他語言中,被稱為null、nil或undefined)



④局部和全局作用域
作用域很重要,灰常重要,格外重要:
全局作用域中的代碼不能使用任何局部變量;
但是局部作用域可以訪問全局變量;
一個函數(shù)的局部作用域中的代碼,不能使用其他局部作用域中的變量;
如果在不同的作用域中,你可以用相同的名字命名不同的變量。

1、局部變量不能在全局作用域內(nèi)使用
比如:
  1. def spam():
  2. eggs=31337
  3. spam()
  4. print(eggs)
報錯信息如下:
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)的變量

比如:
  1. def spam():
  2. eggs=99
  3. bacon()
  4. print(eggs)
  5. def bacon():
  6. ham=101
  7. eggs=10
  8. spam()

輸出:
99
可以很容易發(fā)現(xiàn),在bacon中對eggs的賦值被完完全全忽略了……spam和bacon是兩個局部作用域,所以bacon中的eggs與spam中的eggs的唯一關系就是名字恰好一樣……


3、全局變量可以在局部變量中讀取
  1. def spam():
  2. print(eggs)
  3. eggs=42
  4. spam()
  5. print(eggs)

輸出:
42
42
在這里eggs就在全局變量中,所以局部作用域spam可以讀取

4、名稱相同的局部變量和全局變量
  1. def spam():
  2. eggs='spam local'
  3. print(eggs)
  4. def bacon():
  5. eggs='bacon local'
  6. print(eggs)
  7. spam()
  8. print(eggs)
  9. eggs='global'
  10. bacon()
  11. print(eggs)

輸出:
bacon local
spam local
bacon local
global
這樣寫使代碼可讀性降低,所以強烈建議盡量不要取相同的名字。




⑤global語句
舉例如下:
  1. def spam():
  2. global eggs
  3. eggs='spam'
  4. eggs='global'
  5. spam()
  6. print(eggs)
輸出:
spam


如何區(qū)分局部變量和全局變量
1、如果變量在全局作用域中使用(即在所有函數(shù)之外),它就總是全局變量
2、如果在一個函數(shù)中,有針對該變量的global語句,它就是全局變量
3、否則,如果該變量用于函數(shù)中的賦值語句,它就是局部變量
4、如果該變量沒有用在賦值語句中,就是全局變量

舉例:
  1. def spam():
  2. global eggs
  3. eggs='spam'#this is global
  4. def bacon():
  5. eggs='bacon'#this is local
  6. def ham():
  7. print(eggs)#this if global
  8. eggs=42#this is global
  9. spam()
  10. print(eggs)
輸出:
spam




⑥異常處理
用try except語句調(diào)試,具體方法和C++里調(diào)試的方法區(qū)別不大,就是截取片段來試,醬紫。




'''
然后接下來,書里是一個很……的小程序,就不放上來了,或者哪天實在無聊敲一下。
所以就到這里啦。(?ω?)
'''


本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python運行的17個時新手常見錯誤小結-
那些年,寫 Python 犯過的錯誤
17個新手常見錯誤,送給初學Python的你!
給妹子講python-S01E20函數(shù)參數(shù)的傳遞與修改
Python征途--嵌套函數(shù)/嵌套作用域/閉包
Python變量作用域規(guī)則
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服