新聞中心
1. 概述
本手冊僅描述 python 編程語言,不宜當(dāng)作教程。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的南岳網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
我希望盡可能地保證內(nèi)容精確無誤,但還是選擇使用自然詞句進行描述,正式的規(guī)格定義僅用于句法和詞法解析。這樣應(yīng)該能使文檔對于普通人來說更易理解,但也可能導(dǎo)致一些歧義。因此,如果你是來自火星并且想憑借這份文檔把 Python 重新實現(xiàn)一遍,也許有時需要自行猜測,實際上最終大概會得到一個十分不同的語言。而在另一方面,如果你正在使用 Python 并且想了解有關(guān)該語言特定領(lǐng)域的精確規(guī)則,你應(yīng)該能夠在這里找到它們。如果你希望查看對該語言更正式的定義,也許你可以花些時間自己寫上一份 —- 或者發(fā)明一臺克隆機器 ????
在語言參考文檔里加入過多的實現(xiàn)細(xì)節(jié)是很危險的 —- 具體實現(xiàn)可能發(fā)生改變,對同一語言的其他實現(xiàn)可能使用不同的方式。而在另一方面,CPython 是得到廣泛使用的 Python 實現(xiàn) (然而其他一些實現(xiàn)的擁護者也在增加),其中的特殊細(xì)節(jié)有時也值得一提,特別是當(dāng)其實現(xiàn)方式導(dǎo)致額外的限制時。因此,你會發(fā)現(xiàn)在正文里不時會跳出來一些簡短的 “實現(xiàn)注釋”。
每種 Python 實現(xiàn)都帶有一些內(nèi)置和標(biāo)準(zhǔn)的模塊。相關(guān)的文檔可參見 Python 標(biāo)準(zhǔn)庫 索引。少數(shù)內(nèi)置模塊也會在此提及,如果它們同語言描述存在明顯的關(guān)聯(lián)。
1.1. 其他實現(xiàn)
雖然官方 Python 實現(xiàn)差不多得到最廣泛的歡迎,但也有一些其他實現(xiàn)對特定領(lǐng)域的用戶來說更具吸引力。
知名的實現(xiàn)包括:
CPython
這是最早出現(xiàn)并持續(xù)維護的 Python 實現(xiàn),以 C 語言編寫。新的語言特性通常在此率先添加。
Jython
Python implemented in Java. This implementation can be used as a scripting language for Java applications, or can be used to create applications using the Java class libraries. It is also often used to create tests for Java libraries. More information can be found at the Jython website.
Python for .NET
此實現(xiàn)實際上使用了 CPython 實現(xiàn),但是屬于 .NET 托管應(yīng)用并且可以引入 .NET 類庫。它的創(chuàng)造者是 Brian Lloyd。想了解詳情可訪問 Python for .NET 主頁。
IronPython
An alternate Python for .NET. Unlike Python.NET, this is a complete Python implementation that generates IL, and compiles Python code directly to .NET assemblies. It was created by Jim Hugunin, the original creator of Jython. For more information, see the IronPython website.
PyPy
An implementation of Python written completely in Python. It supports several advanced features not found in other implementations like stackless support and a Just in Time compiler. One of the goals of the project is to encourage experimentation with the language itself by making it easier to modify the interpreter (since it is written in Python). Additional information is available on the PyPy project’s home page.
以上這些實現(xiàn)都可能在某些方面與此參考文檔手冊的描述有所差異,或是引入了超出標(biāo)準(zhǔn) Python 文檔范圍的特定信息。請參考它們各自的專門文檔,以確定你正在使用的這個實現(xiàn)有哪些你需要了解的東西。
1.2. 標(biāo)注
句法和詞法解析的描述采用經(jīng)過改進的 BNF 語法標(biāo)注。這包含以下定義樣式:
- name ::= lc_letter (lc_letter | "_")*
- lc_letter ::= "a"..."z"
第一行表示 name 是 lc_letter 之后跟零個或多個 lc_letter 和下劃線。而 lc_letter 則是任意單個 'a' 至 'z' 字符。(實際上在本文檔中始終采用此規(guī)則來定義詞法和語法規(guī)則的名稱。)
每條規(guī)則的開頭是一個名稱 (即該規(guī)則所定義的名稱) 加上 ::=。 豎線 (|) 被用來分隔可選項,它是此標(biāo)注中綁定程度最低的操作符。 星號 (*) 表示前一項的零次或多次重復(fù),類似地,加號 (+) 表示一次或多次重復(fù),而由方括號括起的內(nèi)容 ([ ]) 表示出現(xiàn)零次或一次 (或者說,這部分內(nèi)容是可選的)。 * 和 + 操作符的綁定是最緊密的,圓括號用于分組。 字符串字面值包含在引號內(nèi)。 空格的作用僅限于分隔形符。 每條規(guī)則通常為一行,有許多個可選項的規(guī)則可能會以豎線為界分為多行。
在詞法定義中 (如上述示例),還額外使用了兩個約定: 由三個點號分隔的兩個字符字面值表示在指定 (閉) 區(qū)間范圍內(nèi)的任意單個 ASCII 字符。由尖括號 (<...>) 括起來的內(nèi)容是對于所定義符號的非正式描述;即可以在必要時用來說明 ‘控制字符’ 的意圖。
雖然所用的標(biāo)注方式幾乎相同,但是詞法定義和句法定義是存在很大區(qū)別的: 詞法定義作用于輸入源中單獨的字符,而句法定義則作用于由詞法分析所生成的形符流。在下一章節(jié) (“詞法分析”) 中使用的 BNF 全部都是詞法定義;在之后的章節(jié)中使用的則是句法定義。
網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)Python教程:1.概述
文章起源:http://www.dlmjj.cn/article/dpipphc.html


咨詢
建站咨詢
