姓名:劉成龍 ?學(xué)號(hào):16020199016
轉(zhuǎn)載自:https://www.jiqizhixin.com/articles/2018-10-08-13瘫镇,有刪節(jié)坯约。
【嵌牛導(dǎo)讀】:Python關(guān)鍵語(yǔ)句備忘錄
【嵌牛鼻子】:Python 3 Cheat Sheet?
【嵌牛提問(wèn)】:你還記得Python關(guān)鍵語(yǔ)句嗎?
【嵌牛正文】:
今天要介紹的 Python 3 Cheat Sheet 由法國(guó)國(guó)家科學(xué)研究中心(CNRS)的法國(guó)機(jī)械工程與信息技術(shù)實(shí)驗(yàn)室(LIMSI)的工程師 Laurent Pointal 總結(jié)砰苍。這個(gè)簡(jiǎn)單的 Cheat Sheet 專(zhuān)注于從算法/編程開(kāi)始所必需的語(yǔ)言部分潦匈,提供了學(xué)生入門(mén)所需的一般信息。注意:它不涉及面向?qū)ο蟮木幊獭?/p>
Python 3 Cheat Sheet 一共包含兩頁(yè)赚导,分成了多個(gè)框圖茬缩,涉及基本的 Python 數(shù)據(jù)結(jié)構(gòu)、數(shù)學(xué)運(yùn)算吼旧、條件和循環(huán)語(yǔ)句凰锡、文件讀寫(xiě),以及異常值處理等。在每個(gè)框圖中寡夹,右上角是類(lèi)型名稱(chēng)处面,藍(lán)色和紅色字體是該類(lèi)型包含的關(guān)鍵字厂置,綠色字體是示例菩掏,黑色斜體字提供更詳細(xì)的信息。
pdf 地址:https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf
項(xiàng)目地址:https://perso.limsi.fr/pointal/python:memento
Python3 的基本數(shù)據(jù)類(lèi)型和數(shù)據(jù)結(jié)構(gòu)類(lèi)型:
數(shù)據(jù)類(lèi)型:整型(int)昵济、浮點(diǎn)型(float)智绸、布爾型(bool)、字符串(str)访忿、二進(jìn)制字節(jié)序列數(shù)(含二進(jìn)制數(shù)瞧栗、八進(jìn)制數(shù)、十六進(jìn)制數(shù)海铆,bytes)等迹恐。
數(shù)據(jù)結(jié)構(gòu)類(lèi)型包含有序序列和鍵值容器。有序序列包含列表卧斟、元組和字符串等殴边,其中列表和元組的重要區(qū)別是前者可變,后者不可變珍语,列表主要用于存儲(chǔ)同構(gòu)數(shù)據(jù)锤岸,元組主要用于存儲(chǔ)異構(gòu)數(shù)據(jù);鍵值容器沒(méi)有預(yù)先設(shè)置順序板乙,可以通過(guò)訪問(wèn)鍵快速查找值是偷,包含字典、集合等募逞。
標(biāo)識(shí)符:用于代表變量蛋铆、函數(shù)、模塊放接、類(lèi)等的名稱(chēng)刺啦。注意盡量避免使用讀音符號(hào),不要使用 Python3 中的關(guān)鍵字透乾,Python3 的標(biāo)識(shí)符是區(qū)分大小寫(xiě)的洪燥,框圖中分別列出了允許和不允許的標(biāo)識(shí)符示例。
變量賦值:賦值也就是為變量賦予具體的值乳乌,等號(hào)左側(cè)是變量名捧韵,右側(cè)是值。如果右側(cè)存在變量汉操,可以看成是函數(shù)再来;可以將同一個(gè)值賦予多個(gè)變量;可以將多個(gè)值分別賦予多個(gè)變量;可以交換兩個(gè)變量的值芒篷;可以用于表示循環(huán)語(yǔ)句搜变,等。
類(lèi)型轉(zhuǎn)換:將數(shù)據(jù)從某一個(gè)數(shù)據(jù)類(lèi)型轉(zhuǎn)換為另一個(gè)數(shù)據(jù)類(lèi)型针炉,或?qū)⒛骋粋€(gè)數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為另一個(gè)數(shù)據(jù)結(jié)構(gòu)挠他。可以將表達(dá)式總結(jié)為 type(expression)篡帕,其中 type 是目標(biāo)轉(zhuǎn)換類(lèi)型殖侵,expression 是要轉(zhuǎn)換的數(shù)據(jù)或數(shù)據(jù)結(jié)構(gòu)。此外镰烧,也可以用更具體的句式轉(zhuǎn)換列表的格式拢军,或者對(duì)列表中的每個(gè)數(shù)據(jù)同時(shí)轉(zhuǎn)換數(shù)據(jù)類(lèi)型。
序列容器索引:用于列表怔鳖、元組茉唉、字符串、bytes 的數(shù)據(jù)排序结执《嚷剑可以使用正索引,也可以使用負(fù)索引昌犹。定義了索引之后坚芜,可以方便地對(duì)容器的數(shù)據(jù)進(jìn)行訪問(wèn)、賦值(可變量)等操作斜姥,數(shù)據(jù)訪問(wèn)/賦值可以用于單個(gè)數(shù)據(jù)鸿竖,也可以用于多個(gè)數(shù)據(jù),并能指定間隔铸敏、順序/倒序等缚忧。
第一頁(yè)剩余部分還包括:布爾邏輯、聲明的模塊結(jié)構(gòu)杈笔、模塊導(dǎo)入操作闪水、數(shù)學(xué)運(yùn)算、條件聲明語(yǔ)句結(jié)構(gòu)以及異常案例處理語(yǔ)句蒙具。
循環(huán)語(yǔ)句是編程語(yǔ)言中最核心的語(yǔ)句之一球榆,如下在第二頁(yè)所示在 Python 中主要有 while 循環(huán)與 for 循環(huán)。其中 While 循環(huán)需要一個(gè)「循環(huán)條件」禁筏,如果它為真持钉,則繼續(xù)迭代。而對(duì)于 For 循篱昔,我們可以把變量「var」應(yīng)用需要循環(huán)的代碼塊中每强,「for」語(yǔ)句會(huì)迭代地從 seqence 中抽取它始腾。注意這兩個(gè)循環(huán)還會(huì)有控制語(yǔ)句,即立即從循環(huán)體跳出的 break 命令和跳過(guò)當(dāng)前循環(huán)剩余語(yǔ)句并進(jìn)入下一個(gè)循環(huán)的 continue 語(yǔ)句空执。
注意 for 循環(huán)需要可迭代目標(biāo)浪箭,即列表、元組和字符串等辨绊,只有這樣才能從它們中抽取元素奶栖。此外,for ... in range() 語(yǔ)句可以通過(guò)數(shù)值進(jìn)行迭代邢羔,例如從 0 增加到 9 等驼抹。在上圖還展示了 print() 函數(shù)和 input() 函數(shù)桑孩,其中 print() 函數(shù)可以打印字符串拜鹤、變量和表達(dá)式。
Python 提供了非常多的內(nèi)嵌運(yùn)算函數(shù)流椒,包括對(duì)數(shù)值變量的運(yùn)算和各種數(shù)據(jù)結(jié)構(gòu)的操作敏簿。如下展示了對(duì)列表、字典宣虾、集合和一般數(shù)據(jù)結(jié)構(gòu)的操作方法惯裕,后面還繼續(xù)展示了字符串或元組的操作。例如在一般數(shù)據(jù)結(jié)構(gòu)的操作中绣硝,len() 函數(shù)可能是最常見(jiàn)的方法蜻势,它可以用來(lái)統(tǒng)計(jì)不同數(shù)據(jù)結(jié)構(gòu)中元素的數(shù)量。例如如果一個(gè)列表中儲(chǔ)存了所有神經(jīng)元的輸出值鹉胖,那么我們可以使用 len() 統(tǒng)計(jì)神經(jīng)元的數(shù)量握玛,并用 for 循環(huán)依次訪問(wèn)不同的神經(jīng)元。
后面的列表甫菠、字典和集合操作都非常重要挠铲,它們?cè)跈C(jī)器學(xué)習(xí)及一般編程中都十分常見(jiàn)。例如在列表運(yùn)算中寂诱,append() 方法會(huì)在列表的尾部添加新的元素拂苹,extend() 方法會(huì)將另外一個(gè)序列添加到列表的末尾,而 pop() 方法會(huì)移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素)痰洒,并且返回該元素的值瓢棒。列表數(shù)據(jù)結(jié)構(gòu)還有其它很多方法,包括移除 remove()丘喻、排序 sort() 和統(tǒng)計(jì) count() 等脯宿。
除了列表外,字典是另外一種很重要的數(shù)據(jù)結(jié)構(gòu)仓犬,如果我們需要迭代地給神經(jīng)網(wǎng)絡(luò)不同層級(jí)的參數(shù)命名嗅绰,那么很可能就需要借助字典數(shù)據(jù)結(jié)構(gòu)。通過(guò)字典,我們可以使用數(shù)值型窘面、字符型或其它類(lèi)型的索引翠语。字典的每個(gè)鍵值 (key=>value) 對(duì)用冒號(hào) (:) 分割,每個(gè)對(duì)之間用逗號(hào) (,) 分割财边,整個(gè)字典包括在花括號(hào) ({}) 中肌括。
字典同樣也有非常多的方法,如上所示刪除字典內(nèi)所有元素的 clear() 方法酣难、以列表返回可遍歷的(鍵谍夭,值)元組的 items() 方法,以及把字典 d2 的鍵/值對(duì)更新到 d 里面的 update(d2) 方法憨募。
下面?zhèn)渫浿凶钪匾木褪呛瘮?shù)的定義和調(diào)用了紧索,這在大多數(shù)編程語(yǔ)言中都是很核心的模塊。函數(shù)的定義與調(diào)用都非常簡(jiǎn)單菜谣,這張表也只是展示了基本概念珠漂。此外,在這一張備忘錄中尾膊,它并沒(méi)有介紹類(lèi)與實(shí)例等面向?qū)ο蟮木幊谭椒ā?/p>
最后是文件讀寫(xiě)媳危、字符串操作與字符串的格式化操作。其中文件讀寫(xiě)在讀寫(xiě)數(shù)據(jù)中是很常用的冈敛,當(dāng)然我們也可以用 Pandas 等庫(kù)實(shí)現(xiàn)更高效的讀寫(xiě)方法待笑。在對(duì)文件進(jìn)行處理過(guò)程中,open() 方法用于打開(kāi)一個(gè)文件抓谴,并返回文件對(duì)象暮蹂,如果該文件無(wú)法被打開(kāi),會(huì)拋出 OSError齐邦。打開(kāi)文件并執(zhí)行某些操作后椎侠,一般我們都需要使用 write() 方法將字符串寫(xiě)入文件。每次打開(kāi)一個(gè)文件措拇,并完成讀寫(xiě)后我纪,我們必須使用 close() 關(guān)閉文件。
最后丐吓,兩頁(yè)完整的 Pyhon 3 備忘錄展示如下浅悉,如果需要更清晰的 PDF 版,讀者可點(diǎn)擊「閱讀原文」查閱券犁。