Python基本語(yǔ)法 1. 四種數(shù)值類(lèi)型:整型,長(zhǎng)整型(L),浮點(diǎn)數(shù),復(fù)數(shù)((1 + 3j),j表示虛數(shù)部分) 2. 字符串: 單引號(hào),雙引號(hào)(單雙引號(hào)等價(jià),無(wú)char類(lèi)型) 三引號(hào)(多行) 轉(zhuǎn)義符\(轉(zhuǎn)義,換行) 自然字符串(字符串前加r,轉(zhuǎn)義符失效) Unicode字符串(字符串前加u,以Unicode格式處理) 字符串不可變(同Java) 兩個(gè)相鄰書(shū)寫(xiě)的字符串將自動(dòng)連接 3. 標(biāo)識(shí)符:首字符只允許字母或下劃線;其它字符允許字母、下劃線、數(shù)字;大小寫(xiě)敏感 4. 變量:不需要聲明類(lèi)型,變量名指向存儲(chǔ)該對(duì)象的內(nèi)存區(qū)域(同C指針) 5. 物理行與邏輯行: python文件中的一行為物理行,每條python指令為邏輯行 一個(gè)物理行中可以包含多個(gè)邏輯行,邏輯行之間必須通過(guò) ; 分隔 一個(gè)物理行中只有一個(gè)邏輯行時(shí)可省略 ; 多行字符串算做一個(gè)邏輯行 6. 縮進(jìn):同一層次(代碼塊)的語(yǔ)句必須用于同樣的縮進(jìn) 7. 運(yùn)算符優(yōu)先級(jí): 8. if條件語(yǔ)句: if condition: statements elif condition: statements else: statements 條件語(yǔ)句無(wú)需括號(hào)(),條件末尾接 : ,代碼塊注意縮進(jìn) 9. while循環(huán)語(yǔ)句: while condition: statements else: statements 條件語(yǔ)句無(wú)需括號(hào)(),條件末尾接 : ,代碼塊注意縮進(jìn);else語(yǔ)句只在循環(huán)結(jié)束時(shí)執(zhí)行一次 10. for…in循環(huán)語(yǔ)句 for variable in sequence: statements else: statements in后面只能接序列(列表、元組、字符串);else語(yǔ)句只在循環(huán)結(jié)束時(shí)執(zhí)行一次 11. break:終止并跳出當(dāng)前循環(huán),且不執(zhí)行該循環(huán)的else語(yǔ)句 12. continue:跳過(guò)循環(huán)的剩余語(yǔ)句,直接開(kāi)始下一輪循環(huán) 13. 列表: [item0, item1, item2, …] 可變,有序 列表中的對(duì)象可通過(guò)[index]訪問(wèn)(同數(shù)組) 14. 元組: (item0, item1, item2, …) 不可變(對(duì)原有元組的修改將直接生成新的元組,原有元組保持不變),有序 元組中的對(duì)象可通過(guò)[index]訪問(wèn) 只有一個(gè)元素的元組,該元素之后也應(yīng)加 , 元組可用于格式化字符串,如 '%s is %d years old' % (name, age) 15. 字典: {key0:value0, key1:value1, key2:value2, …} 可變,鍵值對(duì),無(wú)序,是dict類(lèi)的實(shí)例 鍵必須是不可變對(duì)象,且鍵必須唯一(重復(fù)將覆蓋原有值) 字典中的值可以通過(guò)鍵作為索引[key]來(lái)訪問(wèn) 字典的items()方法將返回一個(gè)列表,列表中的每項(xiàng)為鍵和值組成的元組 16. 序列: 字符串、列表、元組都是序列,其最大特點(diǎn)是有序和可索引 索引操作符為[index] 索引可以拓展為切片,即獲取子序列,操作符為[a:b],表示從索引a的元素開(kāi)始到索引b的元素結(jié)束(包含a,不包含b);若a無(wú)值([ :b])表示從頭開(kāi)始,若b無(wú)值([a: ])表示包含到尾后結(jié)束,因此[:]就表示原序列 非負(fù)數(shù)表示從序列頭開(kāi)始向右掃描,負(fù)數(shù)表示從序列尾開(kāi)始向左掃描 17. 函數(shù)定義: def function_name(<parameters>): statements 以關(guān)鍵字def開(kāi)始,: 結(jié)束;括號(hào)中可填形參(同JavaScript) 18. 局部變量與全局變量: 函數(shù)內(nèi)外都具有的同名變量實(shí)際沒(méi)有任何關(guān)系;函數(shù)中的變量是局部的,其作用域就是該函數(shù)內(nèi) 在函數(shù)內(nèi)聲明為global的變量是全局變量,它與函數(shù)外的同名變量指向同一內(nèi)存區(qū)域 19. 形參默認(rèn)值:函數(shù)聲明時(shí)將形參用=賦值,改值即是該形參的默認(rèn)值(同JavaScript);有默認(rèn)值的形參必須在沒(méi)有默認(rèn)值的形參的右邊 20. 關(guān)鍵參數(shù):調(diào)用函數(shù)時(shí),直接在括號(hào)中按照形參名指定形參值,而無(wú)需按照順序指定 21. return:從當(dāng)前函數(shù)中跳出,并為函數(shù)返回一個(gè)值(同JavaScript) 22. __doc__:函數(shù)、模塊、類(lèi)的第一個(gè)邏輯行的字符串是它的文檔字符串,保存在命名空間的__doc__變量中,可以通過(guò) <name>.__doc__的方式得到 23. 模塊導(dǎo)入:(模塊就是若干函數(shù)與類(lèi)的集合文件)www. import module 導(dǎo)入模塊內(nèi)的全部函數(shù)和類(lèi),但在命名空間中只保存該模塊本身,因此實(shí)際調(diào)用時(shí)需要采用module.function的形式 from module import function/class/attribute 導(dǎo)入某模塊的指定函數(shù)、類(lèi)或?qū)傩?,并將它保存到命名空間中,調(diào)用時(shí)直接采用具體函數(shù)名、類(lèi)名或?qū)傩悦?/div> 另外,from module import *也將導(dǎo)入模塊內(nèi)的所有函數(shù)和類(lèi)及屬性,且會(huì)在命名空間中保存導(dǎo)入的所有對(duì)象 為了代碼的清晰,官方推薦使用import module進(jìn)行導(dǎo)入 24. __name__:每個(gè)模塊的名稱(chēng)存在命名空間的__name__變量中,通過(guò)import導(dǎo)入的模塊就會(huì)將其__name__的屬性值寫(xiě)入當(dāng)前的命名空間中;當(dāng)前被運(yùn)行的模塊的__name__變量將自動(dòng)被賦值為”__main__” 25. 創(chuàng)建類(lèi): class className: statements 完成后,類(lèi)名將會(huì)存入該模塊的命名空間中 26. 定義類(lèi)方法: class className: deffunctionName(self, <parameters>): statements 類(lèi)方法的首形參必須存在(建議命名為self),表示類(lèi)實(shí)例本身(同Java中的this) 27. 構(gòu)造函數(shù)__init__ class className: def __init__(self, <parameters>): statements 為類(lèi)創(chuàng)建新實(shí)例時(shí),__init__方法將自動(dòng)執(zhí)行一次 28. 析構(gòu)函數(shù)__del__ class className: def __del__(self): statements 系統(tǒng)檢測(cè)到類(lèi)實(shí)例不再被使用時(shí)自動(dòng)調(diào)用以釋放內(nèi)存;另外也可以通過(guò)del語(yǔ)句手動(dòng)調(diào)用,如 del instance 29. 類(lèi)變量與對(duì)象變量: 定義在類(lèi)中的變量都是類(lèi)變量,類(lèi)變量只有一份拷貝,保存在類(lèi)的命名空間中,任何一個(gè)類(lèi)實(shí)例對(duì)其進(jìn)行修改都是改變它在其它實(shí)例中的值 對(duì)象變量只由某個(gè)實(shí)例獨(dú)自擁有,它保存在各個(gè)對(duì)象的self變量中 一般地,類(lèi)變量都是公有的(public);只有名稱(chēng)以雙下劃線為前綴的變量是私有的(private) 30. 繼承: class subclass(superClass): statement 允許多重繼承 子類(lèi)不會(huì)自動(dòng)調(diào)用父類(lèi)的構(gòu)造函數(shù),需手動(dòng)調(diào)用,且調(diào)用方式與普通方法不同,如下: class subclass(superClass): def __init__(self, <parameters1>): superClass.__init__(self, <parameters2>) 31. 實(shí)例化(類(lèi)似C++): instance = className(<parameters>) 32. 方法調(diào)用: instance.functionName(<parameters>) 調(diào)用時(shí)無(wú)需self
|
|
來(lái)自: xf_baby > 《Linux基礎(chǔ)教程》