python笔记(摘抄廖雪峰python课堂)
Python對(duì)bytes類型的數(shù)據(jù)用帶b前綴的單引號(hào)或者雙引號(hào)來(lái)表示。
以Unicode表示的str可以通過(guò)encode()的方法來(lái)編碼為指定的bytes。
len()函數(shù)計(jì)算的是str的字符數(shù),如果換成bytes,len()函數(shù)就計(jì)算字節(jié)數(shù)。
在操作字符串時(shí),我們經(jīng)常遇到str和bytes的互相轉(zhuǎn)換。為了避免亂碼問(wèn)題,應(yīng)當(dāng)始終堅(jiān)持使用UTF-8編碼對(duì)str和bytes進(jìn)行轉(zhuǎn)換。
由于Python源代碼也是一個(gè)文本文件,所以,當(dāng)你的源代碼中包含中文的時(shí)候,在保存源代碼時(shí),就需要?jiǎng)?wù)必指定保存為UTF-8編碼。當(dāng)Python解釋器讀取源代碼時(shí),為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:
第一行注釋是為了告訴Linux/OS X系統(tǒng),這是一個(gè)Python可執(zhí)行程序,Windows系統(tǒng)會(huì)忽略這個(gè)注釋;
第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會(huì)有亂碼。
定義只有一個(gè)元素的tuple的時(shí)候,不可以寫成:t = (1)
這樣定義的是一個(gè)整數(shù),要寫成:
t = (1,)
加上一個(gè)逗號(hào)來(lái)區(qū)分。
input()返回的數(shù)據(jù)類型是str,必須先把str轉(zhuǎn)換成整數(shù)。Python提供了int()函數(shù)來(lái)完成這件事情。
如果想定義一個(gè)什么事也不做的空函數(shù),可以用pass語(yǔ)句:
def nop():
pass
實(shí)際上pass可以用來(lái)作為占位符,比如現(xiàn)在還沒想好怎么寫函數(shù)的代碼,就可以先放一個(gè)pass,讓代碼能運(yùn)行起來(lái)。
返回多個(gè)值的函數(shù),實(shí)際上返回的是一個(gè)tuple
在定義一個(gè)函數(shù)的時(shí)候如果有必要,可以先對(duì)參數(shù)的數(shù)據(jù)類型做檢查;
注意默認(rèn)參數(shù)的使用,可以在一個(gè)函數(shù)的調(diào)用的時(shí)候少寫參數(shù)。
注意事項(xiàng):設(shè)置默認(rèn)參數(shù)時(shí),有幾點(diǎn)要注意:
一是必選參數(shù)在前,默認(rèn)參數(shù)在后,否則Python的解釋器會(huì)報(bào)錯(cuò)(思考一下為什么默認(rèn)參數(shù)不能放在必選參數(shù)前面);
二是如何設(shè)置默認(rèn)參數(shù)。
當(dāng)函數(shù)有多個(gè)參數(shù)時(shí),把變化大的參數(shù)放前面,變化小的參數(shù)放后面。變化小的參數(shù)就可以作為默認(rèn)參數(shù)。
定義默認(rèn)參數(shù)要牢記一點(diǎn):默認(rèn)參數(shù)必須指向不變對(duì)象!
像:str、None
定義可變參數(shù)和定義一個(gè)list或tuple參數(shù)相比,僅僅在參數(shù)前面加了一個(gè)*號(hào)。在函數(shù)內(nèi)部,參數(shù)numbers接收到的是一個(gè)tuple,因此,函數(shù)代碼完全不變。但是,調(diào)用該函數(shù)時(shí),可以傳入任意個(gè)參數(shù),包括0個(gè)參數(shù)。
*nums表示把nums這個(gè)list的所有元素作為可變參數(shù)傳進(jìn)去。這種寫法相當(dāng)有用,而且很常見。
關(guān)鍵字參數(shù)有什么用?它可以擴(kuò)展函數(shù)的功能。比如,在person函數(shù)里,我們保證能接收到name和age這兩個(gè)參數(shù),但是,如果調(diào)用者愿意提供更多的參數(shù),我們也能收到。試想你正在做一個(gè)用戶注冊(cè)的功能,除了用戶名和年齡是必填項(xiàng)外,其他都是可選項(xiàng),利用關(guān)鍵字參數(shù)來(lái)定義這個(gè)函數(shù)就能滿足注冊(cè)的需求。
和關(guān)鍵字參數(shù)**kw不同,命名關(guān)鍵字參數(shù)需要一個(gè)特殊分隔符*,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)。
參數(shù)定義的順序必須是:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。
*args是可變參數(shù),args接收的是一個(gè)tuple;
**kw是關(guān)鍵字參數(shù),kw接收的是一個(gè)dict。
總結(jié)
以上是生活随笔為你收集整理的python笔记(摘抄廖雪峰python课堂)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 类型检查_Java开发笔记(五
- 下一篇: 气球贷计算器