1.概述¶
本參考手冊是對 python 程式語言的描述。並不適宜作為教程使用。
在語言參考文件裡加入過多的實現細節是很危險的 --- 具體實現可能發生改變,對同一語言的其他實現可能使用不同的方式。而在另一方面,cpython 是得到廣泛使用的 python 實現 (然而其他一些實現的擁護者也在增加),其中的特殊細節有時也值得一提,特別是當其實現方式導致額外的限制時。因此,你會發現在正文裡不時會跳出來一些簡短的 "實現注釋"。
每種 python 實現都帶有一些內建和標準的模組。相關的文件可參見 python 標準庫 索引。少數內建模組也會在此提及,如果它們同語言描述存在明顯的關聯。
1.1.其他實現¶
雖然官方 python 實現差不多得到最廣泛的歡迎,但也有一些其他實現對特定領域的使用者來說更具吸引力。
知名的實現包括:
cpython這是最早出現並持續維護的 python 實現,以 c 語言編寫。新的語言特性通常在此率先新增。
以上這些實現都可能在某些方面與此參考文件手冊的描述有所差異,或是引入了超出標準 python 文件範圍的特定資訊。請參考它們各自的專門文件,以確定你正在使用的這個實現有哪些你需要了解的東西。
1.2.標註¶
句法和詞法解析的描述採用經過改進的 bnf 語法標註。這包含以下定義樣式:
name ::= lc_letter (lc_letter | "_")*
lc_letter ::= "a"..."z"
第一行表示 name 是乙個 lc_letter 之後跟零個或多個 lc_letter 和下劃線。而乙個 lc_letter 則是任意單個 'a' 至 'z' 字元。(實際上在本文件中始終採用此規則來定義詞法和語法規則的名稱。)
每條規則的開頭是乙個名稱 (即該規則所定義的名稱) 加上 ::=。豎線 (|) 被用來分隔可選項;它是此標註中最靈活的操作符。星號 (*) 表示前一項的零次或多次重複;類似地,加號 (+) 表示一次或多次重複,而由方括號括起的內容 ([ ]) 表示出現零次或一次 (或者說,這部分內容是可選的)。* 和 + 操作符的繫結是最緊密的;圓括號用於分組。固定字串包含在引號內。空格的作用僅限於分隔形符。每條規則通常為一行;有許多個可選項的規則可能會以豎線為界分為多行。
在詞法定義中 (如上述示例),還額外使用了兩個約定: 由三個點號分隔的兩個字元字面值表示在指定 (閉) 區間範圍內的任意單個 ascii 字元。由尖括號 (<...>) 括起來的內容是對於所定義符號的非正式描述;即可以在必要時用來說明 '控制字元' 的意圖。
雖然所用的標註方式幾乎相同,但是詞法定義和句法定義是存在很大區別的: 詞法定義作用於輸入源中單獨的字元,而句法定義則作用於由詞法分析所生成的形符流。在下一章節 ("詞法分析") 中使用的 bnf 全部都是詞法定義;在之後的章節中使用的則是句法定義。
簡述python檔案操作
讀寫檔案是最常見的io操作,python內建了讀寫檔案的函式,用法和c是相容的.讀寫檔案前,我們先必須了解一下,在磁碟上讀寫檔案的功能都是由作業系統提供的,現代作業系統不允許普通的程式直接操作磁碟,所以讀寫檔案就是請求作業系統開啟乙個檔案物件 通常稱為檔案描述符 然後通過作業系統提供的介面從這個檔案...
Python學習筆記1 Python概述
一 python概述 python是一種解釋型 物件導向 動態資料型別的高階程式語言。python在設計上堅持了清晰劃一的風格,這使得其成為一門易讀 易維護,並且被大量使用者所歡迎的 用途廣泛的語言。python表現出極大的簡單主義的思想,這使得程式設計師不必糾結在語言本身,可以將精力放在解決問題上...
Linux檔案系統1 概述
本文主要先引入vfs的概念,並從直觀上了解linux中所註冊的檔案系統,從而對linux檔案系統有乙個概括的認識。圖 vfs檔案系統架構圖 vfs為使用者空間提供了統一的介面,不同的檔案系統需要實現這些介面,對於裝置檔案,驅動程式中也要實現相應的介面,這體現了一種機制與分離的理念。圖 核心所註冊的檔...