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