亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜索
Python是什么? Python 3 教程 Python3 基礎(chǔ)語法 編碼 Python3 基本數(shù)據(jù)類型 Python解釋器 Python 注釋 Python 數(shù)字運(yùn)算 Python 字符串 Python 列表 Python 編程第一步 Python 條件控制 Python 循環(huán) Python 函數(shù) Python 數(shù)據(jù)結(jié)構(gòu) Python 模塊 Python 輸入和輸出 Python 錯(cuò)誤和異常 Python 類 Python 標(biāo)準(zhǔn)庫(kù)概覽 Python Hello World 實(shí)例 Python 數(shù)字求和 Python 平方根 Python 二次方程 Python 計(jì)算三角形的面積 Python 隨機(jī)數(shù)生成 Python 攝氏溫度轉(zhuǎn)華氏溫度 Python 交換變量 Python if 語句 Python 判斷字符串是否為數(shù)字 Python 判斷奇數(shù)偶數(shù) Python 判斷閏年 Python 獲取最大值函數(shù) Python 質(zhì)數(shù)判斷 Python 階乘實(shí)例 Python 九九乘法表 Python 斐波那契數(shù)列 Python 阿姆斯特朗數(shù) Python 十進(jìn)制轉(zhuǎn)二進(jìn)制、八進(jìn)制、十六進(jìn)制 Python ASCII碼與字符相互轉(zhuǎn)換 Python 最大公約數(shù)算法 Python 最小公倍數(shù)算法 Python 簡(jiǎn)單計(jì)算器實(shí)現(xiàn) Python 生成日歷 Python 使用遞歸斐波那契數(shù)列 Python 文件 IO Python 字符串判斷 Python 字符串大小寫轉(zhuǎn)換 Python 計(jì)算每個(gè)月天數(shù) Python 獲取昨天日期 Python list 常用操作 Python3 實(shí)例
文字

Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,由荷蘭人Guido van Rossum于1989年發(fā)明,第一個(gè)公開發(fā)行版發(fā)行于1991年。
Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議 。
Python語法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語句縮進(jìn)。
Python具有豐富和強(qiáng)大的庫(kù)。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫(kù)。需要注意的是在您使用擴(kuò)展類庫(kù)時(shí)可能需要考慮平臺(tái)問題,某些可能不提供跨平臺(tái)的實(shí)現(xiàn)。

發(fā)展歷程
自從20世紀(jì)90年代初Python語言誕生至今,它已被逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程。
Python的創(chuàng)始人為Guido van Rossum。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個(gè)新的腳本解釋程序,做為ABC 語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是因?yàn)樗且粋€(gè)叫Monty Python的喜劇團(tuán)體的愛好者。
ABC是由Guido參加設(shè)計(jì)的一種教學(xué)語言。就Guido本人看來,ABC 這種語言非常優(yōu)美和強(qiáng)大,是專門為非專業(yè)程序員設(shè)計(jì)的。但是ABC語言并沒有成功,究其原因,Guido 認(rèn)為是其非開標(biāo)識(shí)放造成的。Guido 決心在Python 中避免這一錯(cuò)誤。同時(shí),他還想實(shí)現(xiàn)在ABC 中閃現(xiàn)過但未曾實(shí)現(xiàn)的東西。
就這樣,Python在Guido手中誕生了??梢哉f,Python是從ABC發(fā)展起來,主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語言,為小型團(tuán)體所設(shè)計(jì)的)的影響。并且結(jié)合了Unix shell和C的習(xí)慣。
Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語言之一。2011年1月,它被TIOBE編程語言排行榜評(píng)為2010年度語言。自從2004年以后,python的使用率呈線性增長(zhǎng)。
由于Python語言的簡(jiǎn)潔性、易讀性以及可擴(kuò)展性,在國(guó)外用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python來教授程序設(shè)計(jì)課程。例如卡耐基梅隆大學(xué)的編程基礎(chǔ)、麻省理工學(xué)院的計(jì)算機(jī)科學(xué)及編程導(dǎo)論就使用Python語言講授。眾多開源的科學(xué)計(jì)算軟件包都提供了Python的調(diào)用接口,例如著名的計(jì)算機(jī)視覺庫(kù)OpenCV、三維可視化庫(kù)VTK、醫(yī)學(xué)圖像處理庫(kù)ITK。而Python專用的科學(xué)計(jì)算擴(kuò)展庫(kù)就更多了,例如如下3個(gè)十分經(jīng)典的科學(xué)計(jì)算擴(kuò)展庫(kù):NumPy、SciPy和matplotlib,它們分別為Python提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能。因此Python語言及其眾多的擴(kuò)展庫(kù)所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實(shí)驗(yàn)數(shù)據(jù)、制作圖表,甚至開發(fā)科學(xué)計(jì)算應(yīng)用程序。
說起科學(xué)計(jì)算,首先會(huì)被提到的可能是MATLAB。然而除了MATLAB的一些專業(yè)性很強(qiáng)的工具箱還無法替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相應(yīng)的擴(kuò)展庫(kù)。和MATLAB相比,用Python做科學(xué)計(jì)算有如下優(yōu)點(diǎn):
● 首先,MATLAB是一款商用軟件,并且價(jià)格不菲。而Python完全免費(fèi),眾多開源的科學(xué)計(jì)算庫(kù)都提供了Python的調(diào)用接口。用戶可以在任何計(jì)算機(jī)上免費(fèi)安裝Python及其絕大多數(shù)擴(kuò)展庫(kù)。
● 其次,與MATLAB相比,Python是一門更易學(xué)、更嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計(jì)語言。它能讓用戶編寫出更易讀、易維護(hù)的代碼。
● 最后,MATLAB主要專注于工程和科學(xué)計(jì)算。然而即使在計(jì)算領(lǐng)域,也經(jīng)常會(huì)遇到文件管理、界面設(shè)計(jì)、網(wǎng)絡(luò)通信等各種需求。而Python有著豐富的擴(kuò)展庫(kù),可以輕易完成各種高級(jí)任務(wù),開發(fā)者可以用Python實(shí)現(xiàn)完整應(yīng)用程序所需的各種功能。
風(fēng)格
Python在設(shè)計(jì)上堅(jiān)持了清晰劃一的風(fēng)格,這使得Python成為一門易讀、易維護(hù),并且被大量用戶所歡迎的、用途廣泛的語言。
設(shè)計(jì)者開發(fā)時(shí)總的指導(dǎo)思想是,對(duì)于一個(gè)特定的問題,只要有一種最好的方法來解決就好了。這在由Tim Peters寫的Python格言(稱為The Zen of Python)里面表述為:There should be one-- and preferably only one --obvious way to do it. 這正好和Perl語言(另一種功能類似的高級(jí)動(dòng)態(tài)語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。
Python的作者有意的設(shè)計(jì)限制性很強(qiáng)的語法,使得不好的編程習(xí)慣(例如if語句的下一行不向右縮進(jìn))都不能通過編譯。其中很重要的一項(xiàng)就是Python的縮進(jìn)規(guī)則。
一個(gè)和其他大多數(shù)語言(如C)的區(qū)別就是,一個(gè)模塊的界限,完全是由每行的首字符在這一行的位置來決定的(而C語言是用一對(duì)花括號(hào){}來明確的定出模塊的邊界的,與字符的位置毫無關(guān)系)。這一點(diǎn)曾經(jīng)引起過爭(zhēng)議。因?yàn)樽詮腃這類的語言誕生后,語言的語法含義與字符的排列方式分離開來,曾經(jīng)被認(rèn)為是一種程序語言的進(jìn)步。不過不可否認(rèn)的是,通過強(qiáng)制程序員們縮進(jìn)(包括if,for和函數(shù)定義等所有需要使用模塊的地方),Python確實(shí)使得程序更加清晰和美觀。
設(shè)計(jì)定位

Python的設(shè)計(jì)哲學(xué)是“優(yōu)雅”、“明確”、“簡(jiǎn)單”。因此,Perl語言中“總是有多種方法來做同一件事”的理念在Python開發(fā)者中通常是難以忍受的。Python開發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法來做一件事”。在設(shè)計(jì)Python語言時(shí),如果面臨多種選擇,Python開發(fā)者一般會(huì)拒絕花俏的語法,而選擇明確的沒有或者很少有歧義的語法。由于這種設(shè)計(jì)觀念的差異,Python源代碼通常被認(rèn)為比Perl具備更好的可讀性,并且能夠支撐大規(guī)模的軟件開發(fā)。這些準(zhǔn)則被稱為Python格言。在Python解釋器內(nèi)運(yùn)行import this可以獲得完整的列表。
Python開發(fā)人員盡量避開不成熟或者不重要的優(yōu)化。一些針對(duì)非重要部位的加快運(yùn)行速度的補(bǔ)丁通常不會(huì)被合并到Python內(nèi)。所以很多人認(rèn)為Python很慢。不過,根據(jù)二八定律,大多數(shù)程序?qū)λ俣纫蟛桓?。在某些?duì)運(yùn)行速度要求很高的情況,Python設(shè)計(jì)師傾向于使用JIT技術(shù),或者用使用C/C++語言改寫這部分程序??捎玫腏IT技術(shù)是PyPy。
Python是完全面向?qū)ο蟮恼Z言。函數(shù)、模塊、數(shù)字、字符串都是對(duì)象。并且完全支持繼承、重載、派生、多繼承,有益于增強(qiáng)源代碼的復(fù)用性。Python支持重載運(yùn)算符和動(dòng)態(tài)類型。相對(duì)于Lisp這種傳統(tǒng)的函數(shù)式編程語言,Python對(duì)函數(shù)式設(shè)計(jì)只提供了有限的支持。有兩個(gè)標(biāo)準(zhǔn)庫(kù)(functools, itertools)提供了Haskell和Standard ML中久經(jīng)考驗(yàn)的函數(shù)式程序設(shè)計(jì)工具。
雖然Python可能被粗略地分類為“腳本語言”(script language),但實(shí)際上一些大規(guī)模軟件開發(fā)計(jì)劃例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。Python的支持者較喜歡稱它為一種高級(jí)動(dòng)態(tài)編程語言,原因是“腳本語言”泛指僅作簡(jiǎn)單程序設(shè)計(jì)任務(wù)的語言,如shellscript、VBScript等只能處理簡(jiǎn)單任務(wù)的編程語言,并不能與Python相提并論。
Python本身被設(shè)計(jì)為可擴(kuò)充的。并非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言、C++、Cython來編寫擴(kuò)充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi)。因此,很多人還把Python作為一種“膠水語言”(glue language)使用。使用Python將其他語言編寫的程序進(jìn)行集成和封裝。在Google內(nèi)部的很多項(xiàng)目,例如Google Engine使用C++編寫性能要求極高的部分,然后用Python或Java/Go調(diào)用相應(yīng)的模塊。《Python技術(shù)手冊(cè)》的作者馬特利(Alex Martelli)說:“這很難講,不過,2004 年,Python 已在Google 內(nèi)部使用,Google 召募許多 Python 高手,但在這之前就已決定使用Python,他們的目的是 Python where we can, C++ where we must,在操控硬件的場(chǎng)合使用 C++,在快速開發(fā)時(shí)候使用 Python。”
執(zhí)行
Python在執(zhí)行時(shí),首先會(huì)將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),然后再由Python Virtual Machine(Python虛擬機(jī))來執(zhí)行這些編譯好的byte code。這種機(jī)制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級(jí)的Virtual Machine。這里的高級(jí)并不是通常意義上的高級(jí),不是說Python的Virtual Machine比Java或.NET的功能更強(qiáng)大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實(shí)機(jī)器的距離更遠(yuǎn)?;蛘呖梢赃@么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。
基于C的Python編譯出的字節(jié)碼文件,通常是.pyc格式。
除此之外,Python還可以以交互模式運(yùn)行,比如主流操作系統(tǒng)Unix/Linux、Mac、Windows都可以直接在命令模式下直接運(yùn)行Python交互環(huán)境。直接下達(dá)操作指令即可實(shí)現(xiàn)交互操作。
基本語法
Python的設(shè)計(jì)目標(biāo)之一是讓代碼具備高度的可閱讀性。它設(shè)計(jì)時(shí)盡量使用其它語言經(jīng)常使用的標(biāo)點(diǎn)符號(hào)和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態(tài)語言如C、Pascal那樣需要重復(fù)書寫聲明語句,也不像它們的語法那樣經(jīng)常有特殊情況和意外。
縮進(jìn)
Python開發(fā)者有意讓違反了縮進(jìn)規(guī)則的程序不能通過編譯,以此來強(qiáng)制程序員養(yǎng)成良好的編程習(xí)慣。并且Python語言利用縮進(jìn)表示語句塊的開始和退出(Off-side規(guī)則),而非使用花括號(hào)或者某種關(guān)鍵字。增加縮進(jìn)表示語句塊的開始,而減少縮進(jìn)則表示語句塊的退出??s進(jìn)成為了語法的一部分。例如if語句:

if age<21:
    print("你不能買酒。")
    print("不過你能買口香糖。")
print("這句話處?kù)秈f語句塊的外面。")
注:上述例子為python 3.0版本的代碼
根據(jù)PEP的規(guī)定,必須使用4個(gè)空格來表示每級(jí)縮進(jìn)(不清楚4個(gè)空格的規(guī)定如何,在實(shí)際編寫中可以自定義空格數(shù),但是要滿足每級(jí)縮進(jìn)間空格數(shù)相等)。使用Tab字符和其它數(shù)目的空格雖然都可以編譯通過,但不符合編碼規(guī)范。支持Tab字符和其它數(shù)目的空格僅僅是為兼容很舊的的Python程序和某些有問題的編輯程序。
控制語句
if語句,當(dāng)條件成立時(shí)運(yùn)行語句塊。經(jīng)常與else, elif(相當(dāng)于else if) 配合使用。
for語句,遍歷列表、字符串、字典、集合等迭代器,依次處理迭代器中的每個(gè)元素。
while語句,當(dāng)條件為真時(shí),循環(huán)運(yùn)行語句塊。
try語句。與except,finally配合使用處理在程序運(yùn)行中出現(xiàn)的異常情況。
class語句。用于定義類型。
def語句。用于定義函數(shù)和類型的方法。
pass語句。表示此行為空,不運(yùn)行任何操作。
assert語句。用于程序調(diào)試階段時(shí)測(cè)試運(yùn)行條件是否滿足。
with語句。Python2.6以后定義的語法,在一個(gè)場(chǎng)景中運(yùn)行語句塊。比如,運(yùn)行語句塊前加密,然后在語句塊運(yùn)行退出后解密。
yield語句。在迭代器函數(shù)內(nèi)使用,用于返回一個(gè)元素。自從Python 2.5版本以后。這個(gè)語句變成一個(gè)運(yùn)算符。
raise語句。制造一個(gè)錯(cuò)誤。
import語句。導(dǎo)入一個(gè)模塊或包。
from import語句。從包導(dǎo)入模塊或從模塊導(dǎo)入某個(gè)對(duì)象。
import as語句。將導(dǎo)入的對(duì)象賦值給一個(gè)變量。
in語句。判斷一個(gè)對(duì)象是否在一個(gè)字符串/列表/元組里。
表達(dá)式
Python的表達(dá)式寫法與C/C++類似。只是在某些寫法有所差別。
主要的算術(shù)運(yùn)算符與C/C++類似。+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負(fù)、乘法、除法、整除、乘方、取補(bǔ)、取模。>>, <<表示右移和左移。&, |, ^表示二進(jìn)制的AND, OR, XOR運(yùn)算。>, <, ==, !=, <=, >=用于比較兩個(gè)表達(dá)式的值,分別表示大于、小于、等于、不等于、小于等于、大于等于。在這些運(yùn)算符里面,~, |, ^, &, <<, >>必須應(yīng)用于整數(shù)。
Python使用and, or, not表示邏輯運(yùn)算。
is, is not用于比較兩個(gè)變量是否是同一個(gè)對(duì)象。in, not in用于判斷一個(gè)對(duì)象是否屬于另外一個(gè)對(duì)象。
Python支持“列表推導(dǎo)式”(list comprehension),比如計(jì)算0-9的平方和:
>>> sum(x * x for x in range(10))
285
Python使用lambda表示匿名函數(shù)。匿名函數(shù)體只能是表達(dá)式。比如:
>>> add=lambda x, y : x + y
>>> add(3,2)
5
Python使用y if cond else x表示條件表達(dá)式。意思是當(dāng)cond為真時(shí),表達(dá)式的值為y,否則表達(dá)式的值為x。相當(dāng)于C++和Java里的cond?y:x。
Python區(qū)分列表(list)和元組(tuple)兩種類型。list的寫法是[1,2,3],而tuple的寫法是(1,2,3)??梢愿淖僱ist中的元素,而不能改變tuple。在某些情況下,tuple的括號(hào)可以省略。tuple對(duì)于賦值語句有特殊的處理。因此,可以同時(shí)賦值給多個(gè)變量,比如:
>>> x, y=1,2#同時(shí)給x,y賦值,最終結(jié)果:x=1, y=2
特別地,可以使用以下這種形式來交換兩個(gè)變量的值:
>>> x, y=y, x #最終結(jié)果:y=1, x=2
Python使用'(單引號(hào))和"(雙引號(hào))來表示字符串。與Perl、Unix Shell語言或者Ruby、Groovy等語言不一樣,兩種符號(hào)作用相同。一般地,如果字符串中出現(xiàn)了雙引號(hào),就使用單引號(hào)來表示字符串;反之則使用雙引號(hào)。如果都沒有出現(xiàn),就依個(gè)人喜好選擇。出現(xiàn)在字符串中的\(反斜杠)被解釋為特殊字符,比如\n表示換行符。表達(dá)式前加r指示Python不解釋字符串中出現(xiàn)的\。這種寫法通常用于編寫正則表達(dá)式或者Windows文件路徑。
Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的類型有str, bytes, list, tuple等。它的語法是...[left:right]或者...[left:right:stride]。假定nums變量的值是[1, 3, 5, 7, 8, 13, 20],那么下面幾個(gè)語句為真:
nums[2:5] == [5, 7, 8] 從下標(biāo)為2的元素切割到下標(biāo)為5的元素,但不包含下標(biāo)為5的元素。
nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最后一個(gè)元素。
nums[:-3] == [1, 3, 5, 7] 從最開始的元素一直切割到倒數(shù)第3個(gè)元素。
nums[:] == [1, 3, 5, 7, 8, 13, 20] 返回所有元素。改變新的列表不會(huì)影響到nums。
nums[1:5:2] == [3, 7] 從下標(biāo)為1的元素切割到下標(biāo)為5的元素但不包含下標(biāo)為5的元素,且步長(zhǎng)為2。
函數(shù)
Python的函數(shù)支持遞歸、默認(rèn)參數(shù)值、可變參數(shù),但不支持函數(shù)重載。為了增強(qiáng)代碼的可讀性,可以在函數(shù)后書寫“文檔字符串”(Documentation Strings,或者簡(jiǎn)稱docstrings),用于解釋函數(shù)的作用、參數(shù)的類型與意義、返回值類型與取值范圍等??梢允褂脙?nèi)置函數(shù)help()打印出函數(shù)的使用幫助。比如:
>>> def randint(a, b):
... "Return random integer in range [a, b], including both end points."...
>>> help(randint)
Help on function randint in module __main__:
randint(a, b)
Return random integer inrange[a, b], including both end points.
對(duì)象的方法
對(duì)象的方法是指綁定到對(duì)象的函數(shù)。調(diào)用對(duì)象方法的語法是instance.method(arguments)。它等價(jià)于調(diào)用Class.method(instance, arguments)。當(dāng)定義對(duì)象方法時(shí),必須顯式地定義第一個(gè)參數(shù),一般該參數(shù)名都使用self,用于訪問對(duì)象的內(nèi)部數(shù)據(jù)。這里的self相當(dāng)于C++, Java里面的this變量,但是我們還可以使用任何其它合法的參數(shù)名,比如this 和 mine 等,self與C++,Java里面的this不完全一樣,它可以被看作是一個(gè)習(xí)慣性的用法,我們傳入任何其它的合法名稱都行,比如:
class Fish:
    def eat(self,food):
        if food is not None:
        self.hungry=False
 
class User:
    def__init__(myself,name):
        myself.name=name
 
#構(gòu)造Fish的實(shí)例:
f=Fish()
#以下兩種調(diào)用形式是等價(jià)的:
Fish.eat(f,"earthworm")
f.eat("earthworm")
u=User('username')
print(u.name)
Python認(rèn)識(shí)一些以“__”開始并以“__”結(jié)束的特殊方法名,它們用于實(shí)現(xiàn)運(yùn)算符重載和實(shí)現(xiàn)多種特殊功能。
類型
Python采用動(dòng)態(tài)類型系統(tǒng)。在編譯的時(shí)候,Python不會(huì)檢查對(duì)象是否擁有被調(diào)用的方法或者屬性,而是直至運(yùn)行時(shí),才做出檢查。所以操作對(duì)象時(shí)可能會(huì)拋出異常。不過,雖然Python采用動(dòng)態(tài)類型系統(tǒng),它同時(shí)也是強(qiáng)類型的。Python禁止沒有明確定義的操作,比如數(shù)字加字符串。
與其它面向?qū)ο笳Z言一樣,Python允許程序員定義類型。構(gòu)造一個(gè)對(duì)象只需要像函數(shù)一樣調(diào)用類型即可,比如,對(duì)于前面定義的Fish類型,使用Fish()。類型本身也是特殊類型type的對(duì)象(type類型本身也是type對(duì)象),這種特殊的設(shè)計(jì)允許對(duì)類型進(jìn)行反射編程。
Python內(nèi)置豐富的數(shù)據(jù)類型。與Java、C++相比,這些數(shù)據(jù)類型有效地減少代碼的長(zhǎng)度。下面這個(gè)列表簡(jiǎn)要地描述了Python內(nèi)置數(shù)據(jù)類型(適用于Python 3.x):
類型
str   
一個(gè)由字符組成的不可更改的有串行。
'Wikipedia'
"Wikipedia"
"""Spanning
multiple
lines"""
    在Python 3.x里,字符串由Unicode字符組成
bytes
一個(gè)由字節(jié)組成的不可更改的有串行。  
b'Some ASCII'
b"Some ASCII"  
list
可以包含多種類型的可改變的有串行
[4.0, 'string', True]   
tuple
可以包含多種類型的不可改變的有串行 
(4.0, 'string', True)   
set, frozenset
與數(shù)學(xué)中集合的概念類似。無序的、每個(gè)元素唯一。
{4.0, 'string', True}
frozenset([4.0, 'string', True])     
dict
一個(gè)可改變的由鍵值對(duì)組成的無串行。  
{'key1': 1.0, 3: False}
int
精度不限的整數(shù)
42  
float 
浮點(diǎn)數(shù)。精度與系統(tǒng)相關(guān)。 
3.1415927     
complex  
復(fù)數(shù)
3+2.7j   
bool
邏輯值。只有兩個(gè)值:真、假
True
False  
除了各種數(shù)據(jù)類型,Python語言還用類型來表示函數(shù)、模塊、類型本身、對(duì)象的方法、編譯后的Python代碼、運(yùn)行時(shí)信息等等。因此,Python具備很強(qiáng)的動(dòng)態(tài)性。
數(shù)學(xué)運(yùn)算
Python使用與C、Java類似的運(yùn)算符,支持整數(shù)與浮點(diǎn)數(shù)的數(shù)學(xué)運(yùn)算。同時(shí)還支持復(fù)數(shù)運(yùn)算與無窮位數(shù)(實(shí)際受限于計(jì)算機(jī)的能力)的整數(shù)運(yùn)算。除了求絕對(duì)值函數(shù)abs()外,大多數(shù)數(shù)學(xué)函數(shù)處于math和cmath模塊內(nèi)。前者用于實(shí)數(shù)運(yùn)算,而后者用于復(fù)數(shù)運(yùn)算。使用時(shí)需要先導(dǎo)入它們,比如:
>>> import math
>>> print(math.sin(math.pi/2))
1.0
fractions模塊用于支持分?jǐn)?shù)運(yùn)算;decimal模塊用于支持高精度的浮點(diǎn)數(shù)運(yùn)算。
Python定義求余運(yùn)行a % b的值處于開區(qū)間[0, b)內(nèi),如果b是負(fù)數(shù),開區(qū)間變?yōu)?b, 0]。這是一個(gè)很常見的定義方式。不過其實(shí)它依賴于整除的定義。為了讓方程式:b * (a // b) + a % b = a恒真,整除運(yùn)行需要向負(fù)無窮小方向取值。比如7 // 3的結(jié)果是2,而(-7) // 3的結(jié)果卻是-3。這個(gè)算法與其它很多編程語言不一樣,需要注意,它們的整除運(yùn)算會(huì)向0的方向取值。
Python允許像數(shù)學(xué)的常用寫法那樣連著寫兩個(gè)比較運(yùn)行符。比如a < b < c與a < b and b < c等價(jià)。C++的結(jié)果與Python不一樣,首先它會(huì)先計(jì)算a < b,根據(jù)兩者的大小獲得0或者1兩個(gè)值之一,然后再與c進(jìn)行比較。
CGI
編輯
CGI 目前由NCSA維護(hù),NCSA定義CGI如下:[4]
CGI(Common Gateway Interface),通用網(wǎng)關(guān)接口,它是一段程序,運(yùn)行在服務(wù)器上如:HTTP服務(wù)器,提供同客戶端HTML頁(yè)面的接口。
CGI程序可以是Python腳本、Perl腳本、Shell腳本、C或者C++程序等。
服務(wù)器
在你進(jìn)行CGI編程前,確保您的Web服務(wù)器支持CGI及已經(jīng)配置了CGI的處理程序。
所有的HTTP服務(wù)器執(zhí)行CGI程序都保存在一個(gè)預(yù)先配置的目錄。這個(gè)目錄被稱為CGI目錄,并按照慣例,它被命名為/var/www/cgi-bin目錄。
CGI文件的擴(kuò)展名為.cgi,python也可以使用.py擴(kuò)展名。
默認(rèn)情況下,Linux服務(wù)器配置運(yùn)行的cgi-bin目錄中為/var/www。
如果想指定的其他運(yùn)行CGI腳本的目錄,可以修改httpd.conf配置文件,如下所示:

    

<Directory"/var/www/cgi-bin">
Allow Override None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<Directory"/var/www/cgi-bin">
Options All
</Directory>


程序
使用Python創(chuàng)建第一個(gè)CGI程序,文件名為hello.py,文件位于/var/www/cgi-bin目錄中,內(nèi)容如下,修改文件的權(quán)限為755:[4]

    

#!/usr/bin/env python
print("Content-type:text/html\r\n\r\n")
print("<html>")
print("<head>")
print("")
print("</head>")
print("<body>")
print("<h2>Hello World! This is my first CGI program</h2>")
print("</body>")
print("</html>")


以上程序在瀏覽器訪問顯示結(jié)果如下:
1
    
Hello World! This is my first CGI program
這個(gè)的hello.py腳本是一個(gè)簡(jiǎn)單的Python腳本,腳本第一的輸出內(nèi)容"Content-type:text/html\r\n\r\n"發(fā)送到瀏覽器并告知瀏覽器顯示的內(nèi)容類型為"text/html"。
環(huán)境變量
所有的CGI程序都接收以下的環(huán)境變量,這些變量在CGI程序中發(fā)揮了重要的作用:[4]
變量名
    
描述
CONTENT_TYPE
    
這個(gè)環(huán)境變量的值指示所傳遞來的信息的MIME類型。目前,環(huán)境變量CONTENT_TYPE一般都是:application/x-www-form-urlencoded,他表示數(shù)據(jù)來自于HTML表單。
CONTENT_LENGTH
    
如果服務(wù)器與CGI程序信息的傳遞方式是POST,這個(gè)環(huán)境變量即使從標(biāo)準(zhǔn)輸入STDIN中可以讀到的有效數(shù)據(jù)的字節(jié)數(shù)。這個(gè)環(huán)境變量在讀取所輸入的數(shù)據(jù)時(shí)必須使用。
HTTP_COOKIE
    
客戶機(jī)內(nèi)的 COOKIE 內(nèi)容。
HTTP_USER_AGENT
    
提供包含了版本數(shù)或其他專有數(shù)據(jù)的客戶瀏覽器信息。
PATH_INFO
    
這個(gè)環(huán)境變量的值表示緊接在CGI程序名之后的其他路徑信息。它常常作為CGI程序的參數(shù)出現(xiàn)。
QUERY_STRING
    
如果服務(wù)器與CGI程序信息的傳遞方式是GET,這個(gè)環(huán)境變量的值即使所傳遞的信息。這個(gè)信息經(jīng)跟在CGI程序名的后面,兩者中間用一個(gè)問號(hào)'?'分隔。
REMOTE_ADDR
    
這個(gè)環(huán)境變量的值是發(fā)送請(qǐng)求的客戶機(jī)的IP地址,例如上面的192.168.1.67。這個(gè)值總是存在的。而且它是Web客戶機(jī)需要提供給Web服務(wù)器的唯一標(biāo)識(shí),可以在CGI程序中用它來區(qū)分不同的Web客戶機(jī)。
REMOTE_HOST
    
這個(gè)環(huán)境變量的值包含發(fā)送CGI請(qǐng)求的客戶機(jī)的主機(jī)名。如果不支持你想查詢,則無需定義此環(huán)境變量。
REQUEST_METHOD
    
提供腳本被調(diào)用的方法。對(duì)于使用 HTTP/1.0 協(xié)議的腳本,僅 GET 和 POST 有意義。
SCRIPT_FILENAME
    
CGI腳本的完整路徑
SCRIPT_NAME
    
CGI腳本的的名稱
SERVER_NAME
    
這是你的 WEB 服務(wù)器的主機(jī)名、別名或IP地址。
SERVER_SOFTWARE
    
這個(gè)環(huán)境變量的值包含了調(diào)用CGI程序的HTTP服務(wù)器的名稱和版本號(hào)。例如,上面的值為Apache/2.2.14(Unix)
以下是一個(gè)簡(jiǎn)單的CGI腳本輸出CGI的環(huán)境變量:

#!/usr/bin/python
import os
print"Content-type:text/html\r\n\r\n"
print"Environment"
for param in os.environ.keys():
    print"<b>%20s</b>:%s<\br>" %(param,os.environ[param])


優(yōu)點(diǎn)
簡(jiǎn)單:Python是一種代表簡(jiǎn)單主義思想的語言。閱讀一個(gè)良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。
易學(xué):Python極其容易上手,因?yàn)镻ython有極其簡(jiǎn)單的說明文檔[6]  。
速度快:Python 的底層是用 C 語言寫的,很多標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)也都是用 C 寫的,運(yùn)行速度非??臁4]
免費(fèi)、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對(duì)它做改動(dòng)、把它的一部分用于新的自由軟件中。FLOSS是基于一個(gè)團(tuán)體分享知識(shí)的概念。
高層語言:用Python語言編寫程序的時(shí)候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。
可移植性:由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺(tái)上(經(jīng)過改動(dòng)使它能夠工作在不同平臺(tái)上)。這些平臺(tái)包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux開發(fā)的android平臺(tái)。
解釋性:一個(gè)用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個(gè)你的計(jì)算機(jī)使用的語言(二進(jìn)制代碼,即0和1)。這個(gè)過程通過編譯器和不同的標(biāo)記、選項(xiàng)完成。
運(yùn)行程序的時(shí)候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行 程序。
在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語言并運(yùn)行。這使得使用Python更加簡(jiǎn)單。也使得Python程序更加易于移植。
面向?qū)ο螅篜ython既支持面向過程的編程也支持面向?qū)ο蟮木幊?。在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來的。
可擴(kuò)展性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。
可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。
豐富的庫(kù):Python標(biāo)準(zhǔn)庫(kù)確實(shí)很龐大。它可以幫助處理各種工作,包括正則表達(dá)式、文檔生成、單元測(cè)試、線程、數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫(kù)以外,還有許多其他高質(zhì)量的庫(kù),如wxPython、Twisted和Python圖像庫(kù)等等。
規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。
缺點(diǎn)
單行語句和命令行輸出問題:很多時(shí)候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡(jiǎn)單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€(gè).py文件。
獨(dú)特的語法
這也許不應(yīng)該被稱為局限,但是它用縮進(jìn)來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑。即便是很有經(jīng)驗(yàn)的Python程序員,也可能陷入陷阱當(dāng)中。最常見的情況是tab和空格的混用會(huì)導(dǎo)致錯(cuò)誤,而這是用肉眼無法分別的。
運(yùn)行速度慢:這里是指與C和C++相比。
應(yīng)用
編輯
系統(tǒng)編程:提供API(Application Programming Interface應(yīng)用程序編程接口),能方便進(jìn)行系統(tǒng)維護(hù)和管理,Linux下標(biāo)志性語言之一,是很多系統(tǒng)管理員理想的編程工具[7]  。
圖形處理:有PIL、Tkinter等圖形庫(kù)支持,能方便進(jìn)行圖形處理。
數(shù)學(xué)處理:NumPy擴(kuò)展提供大量與許多標(biāo)準(zhǔn)數(shù)學(xué)庫(kù)的接口。
文本處理:python提供的re模塊能支持正則表達(dá)式,還提供SGML,XML分析模塊,許多程序員利用python進(jìn)行XML程序的開發(fā)。
數(shù)據(jù)庫(kù)編程:程序員可通過遵循Python DB-API(數(shù)據(jù)庫(kù)應(yīng)用程序編程接口)規(guī)范的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等數(shù)據(jù)庫(kù)通信。python自帶有一個(gè)Gadfly模塊,提供了一個(gè)完整的SQL環(huán)境。
網(wǎng)絡(luò)編程:提供豐富的模塊支持sockets編程,能方便快速地開發(fā)分布式應(yīng)用程序。很多大規(guī)模軟件開發(fā)計(jì)劃例如Zope,Mnet 及BitTorrent. Google都在廣泛地使用它。
Web編程:應(yīng)用的開發(fā)語言,支持最新的XML技術(shù)。
多媒體應(yīng)用:Python的PyOpenGL模塊封裝了“OpenGL應(yīng)用程序編程接口”,能進(jìn)行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。
pymo引擎:PYMO全稱為python memories off,是一款運(yùn)行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統(tǒng)上的AVG游戲引擎。因其基于python2.0平臺(tái)開發(fā),并且適用于創(chuàng)建秋之回憶(memories off)風(fēng)格的AVG游戲,故命名為PYMO。
黑客編程:python有一個(gè)hack的庫(kù),內(nèi)置了你熟悉的或不熟悉的函數(shù),但是缺少成就感。
用Python寫簡(jiǎn)單爬蟲
首先,要通過urllib2這個(gè)Module獲得對(duì)應(yīng)的HTML源碼。

    
import urllib2  #調(diào)用urllib2  
url='http://www.baidu.com/s?wd=cloga' #把等號(hào)右邊的網(wǎng)址賦值給url
html=urllib2.urlopen(url).read()   #html隨意取名 等號(hào)后面的動(dòng)作是打開源代碼頁(yè)面,并閱讀
print html #打印
通過上面這三句就可以將URL的源碼存在content變量中,其類型為字符型。
接下來是要從這堆HTML源碼中提取我們需要的內(nèi)容。用Chrome查看一下對(duì)應(yīng)的內(nèi)容的代碼(也可以用Firefox的Firebug)。
可以看到url的信息存儲(chǔ)在span標(biāo)簽中,要獲取其中的信息可以用正則式。
工具功能
編輯
Tkinter
Python默認(rèn)的圖形界面接口。Tkinter是一個(gè)和Tk接口的Python模塊,Tkinter庫(kù)提供了對(duì)Tk API的接口,它屬于Tcl/Tk的GUI工具組。
PyGTK
用于python GUI程序開發(fā)的GTK+庫(kù)。GTK就是用來實(shí)現(xiàn)GIMP和Gnome的庫(kù)。
PyQt
用于python的Qt開發(fā)庫(kù)。QT就是實(shí)現(xiàn)了KDE環(huán)境的那個(gè)庫(kù),由一系列的模塊組成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300個(gè)類和超過5750個(gè)的函數(shù)和方法。PyQt還支持一個(gè)叫qtext的模塊,它包含一個(gè)QScintilla庫(kù)。該庫(kù)是Scintillar編輯器類的Qt接口。
wxPython
GUI編程框架,熟悉MFC的人會(huì)非常喜歡,簡(jiǎn)直是同一架構(gòu)(對(duì)于初學(xué)者或者對(duì)設(shè)計(jì)要求不高的用戶來說,使用Boa Constructor可以方便迅速的進(jìn)行wxPython的開發(fā))
PIL
python提供強(qiáng)大的圖形處理的能力,并提供廣泛的圖形文件格式支持,該庫(kù)能進(jìn)行圖形格式的轉(zhuǎn)換、打印和顯示。還能進(jìn)行一些圖形效果的處理,如圖形的放大、縮小和旋轉(zhuǎn)等。是Python用戶進(jìn)行圖象處理的強(qiáng)有力工具。
Psyco
一個(gè)Python代碼加速度器,可使Python代碼的執(zhí)行速度提高到與編譯語言一樣的水平。
xmpppy
Jabber服務(wù)器采用開發(fā)的XMPP協(xié)議,Google Talk也是采用XMPP協(xié)議的IM系統(tǒng)。在Python中有一個(gè)xmpppy模塊支持該協(xié)議。也就是說,我們可以通過該模塊與Jabber服務(wù)器通信,是不是很Cool。
PyMedia
用于多媒體操作的python模塊。它提供了豐富而簡(jiǎn)單的接口用于多媒體處理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平臺(tái)下使用。
Pmw
Python megawidgets,Python超級(jí)GUI組件集,一個(gè)在python中利用Tkinter模塊構(gòu)建的高級(jí)GUI組件,每個(gè)Pmw都合并了一個(gè)或多個(gè)Tkinter組件,以實(shí)現(xiàn)更有用和更復(fù)雜的功能。
PyXML
用Python解析和處理XML文檔的工具包,包中的4DOM是完全相容于W3C DOM規(guī)范的。它包含以下內(nèi)容:
xmlproc: 一個(gè)符合規(guī)范的XML解析器。Expat: 一個(gè)快速的,非驗(yàn)證的XML解析器。還有其他和他同級(jí)別的還有 PyHtml PySGML。
PyGame
用于多媒體開發(fā)和游戲軟件開發(fā)的模塊。
PyOpenGL
模塊封裝了“OpenGL應(yīng)用程序編程接口”,通過該模塊python程序員可在程序中集成2D和3D的圖形。
NumPy、NumArray、SAGE
NumArray是Python的一個(gè)擴(kuò)展庫(kù),主要用于處理任意維數(shù)的固定類型數(shù)組,簡(jiǎn)單說就是一個(gè)矩陣庫(kù)。它的底層代碼使用C來編寫,所以速度的優(yōu)勢(shì)很明顯。SAGE是基于NumPy和其他幾個(gè)工具所整合成的數(shù)學(xué)軟件包,目標(biāo)是取代Magma, Maple, Mathematica和Matlab 這類工具。
MySQLdb
用于連接MySQL數(shù)據(jù)庫(kù)。還有用于zope的ZMySQLDA模塊,通過它就可在zope中連接mysql數(shù)據(jù)庫(kù)。
Sqlite3
用于連接sqlite數(shù)據(jù)庫(kù)。
  
Python-ldap
提供一組面向?qū)ο蟮腁PI,可方便地在python中訪問ldap目錄服務(wù),它基于OpenLDAP2.x。
smtplib
發(fā)送電子郵件。
ftplib
定義了FTP類和一些方法,用以進(jìn)行客戶端的ftp編程。如果想了解ftp協(xié)議的詳細(xì)內(nèi)容,請(qǐng)參考RFC959。
PyOpenCL
OpenCL的Python接口,通過該模塊可以使用GPU實(shí)現(xiàn)并行計(jì)算。
標(biāo)準(zhǔn)庫(kù)
Python擁有一個(gè)強(qiáng)大的標(biāo)準(zhǔn)庫(kù)。Python語言的核心只包含數(shù)字、字符串、列表、字典、文件等常見類型和函數(shù),而由Python標(biāo)準(zhǔn)庫(kù)提供了系統(tǒng)管理、網(wǎng)絡(luò)通信、文本處理、數(shù)據(jù)庫(kù)接口、圖形系統(tǒng)、XML處理等額外的功能。Python標(biāo)準(zhǔn)庫(kù)命名接口清晰、文檔良好,很容易學(xué)習(xí)和使用。
Python社區(qū)提供了大量的第三方模塊,使用方式與標(biāo)準(zhǔn)庫(kù)類似。它們的功能無所不包,覆蓋科學(xué)計(jì)算、Web開發(fā)、數(shù)據(jù)庫(kù)接口、圖形系統(tǒng)多個(gè)領(lǐng)域,并且大多成熟而穩(wěn)定。第三方模塊可以使用Python或者C語言編寫。SWIG,SIP常用于將C語言編寫的程序庫(kù)轉(zhuǎn)化為Python模塊。Boost C++ Libraries包含了一組庫(kù),Boost.Python,使得以 Python 或 C++ 編寫的程序能互相調(diào)用。借助于擁有基于標(biāo)準(zhǔn)庫(kù)的大量工具、能夠使用低級(jí)語言如C和可以作為其他庫(kù)接口的C++,Python已成為一種強(qiáng)大的應(yīng)用于其他語言與工具之間的膠水語言。
Python標(biāo)準(zhǔn)庫(kù)的主要功能有:
文本處理,包含文本格式化、正則表達(dá)式匹配、文本差異計(jì)算與合并、Unicode支持,二進(jìn)制數(shù)據(jù)處理等功能
文件處理,包含文件操作、創(chuàng)建臨時(shí)文件、文件壓縮與歸檔、操作配置文件等功能
操作系統(tǒng)功能,包含線程與進(jìn)程支持、IO復(fù)用、日期與時(shí)間處理、調(diào)用系統(tǒng)函數(shù)、寫日記(logging)等功能
網(wǎng)絡(luò)通信,包含網(wǎng)絡(luò)套接字,SSL加密通信、異步網(wǎng)絡(luò)通信等功能
網(wǎng)絡(luò)協(xié)議,支持HTTP,F(xiàn)TP,SMTP,POP,IMAP,NNTP,XMLRPC等多種網(wǎng)絡(luò)協(xié)議,并提供了編寫網(wǎng)絡(luò)服務(wù)器的框架
W3C格式支持,包含HTML,SGML,XML的處理。
其它功能,包括國(guó)際化支持、數(shù)學(xué)運(yùn)算、HASH、Tkinter等
開發(fā)環(huán)境
●IDLE:Python內(nèi)置IDE (隨python安裝包提供)
●PyCharm[8]  :詳見百度百科PyCharm,由著名的JetBrains公司開發(fā),帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工 具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制。此外,該IDE提供了一些高級(jí)功能,以用于支持Django框架下的專業(yè)Web開發(fā)。
●Komodo和Komodo Edit:后者是前者的免費(fèi)精簡(jiǎn)版
●Spyder:安裝Anaconda自帶的高級(jí)IDE
●PythonWin:ActivePython或pywin32均提供該IDE,僅適用于Windows
●SPE(Stani's Python Editor):功能較多的自由軟件,基于wxPython
●Ulipad:功能較全的自由軟件,基于wxPython;作者是中國(guó)Python高手limodou
●WingIDE:可能是功能最全的IDE,但不是自由軟件(教育用戶和開源用戶可以申請(qǐng)免費(fèi)key)
●Eric:基于PyQt的自由軟件,功能強(qiáng)大。全名是:The Eric Python IDE
●DrPython
●PyScripter:使用Delphi開發(fā)的輕量級(jí)的開源Python IDE, 支持Python2.6和3.0。
●PyPE:一個(gè)開源的跨平臺(tái)的PythonIDE。
●bpython: 類Unix操作系統(tǒng)下使用curses庫(kù)開發(fā)的輕量級(jí)的Python解釋器。語法提示功能。
●eclipse + pydev插件:方便調(diào)試程序
●emacs:自帶python支持,自動(dòng)補(bǔ)全、refactor等功能需要插件支持
●Vim: 最新7.3版編譯時(shí)可以加入python支持,提供python代碼自動(dòng)提示支持
●Visual Studio 2003 + VisualPython:僅適用Windows,已停止維護(hù),功能較差
●SlickEdit
●Visual Studio 2010 + Python Tools for Visual Studio
●TextMate
●Netbeans IDE
●Sublime
●ipython
另外,諸如Notepad++、EditPlus、UltraEdit等通用的程序員文本編輯器軟件也能對(duì)Python代碼編輯提供一定的支持,比如代碼自動(dòng)著色、注釋快捷鍵等,但是否夠得上集成開發(fā)環(huán)境的水平,尚有待評(píng)估。

Python是一門跨平臺(tái)的腳本語言,Python規(guī)定了一個(gè)Python語法規(guī)則,實(shí)現(xiàn)了Python語法的解釋程序就成為了Python的解釋器。
CPython(ClassicPython,也就是原始的Python實(shí)現(xiàn),需要區(qū)別于其他實(shí)現(xiàn)的時(shí)候才以CPython稱呼;或解作C語言實(shí)現(xiàn)的Python)。這是最常用的Python版本。
Jython(原名JPython;Java語言實(shí)現(xiàn)的Python,現(xiàn)已正式發(fā)布)。Jython可以直接調(diào)用Java的各種函數(shù)庫(kù)。
PyPy(使用Python語言寫的Python)
IronPython(面向.NET和ECMA CLI的Python實(shí)現(xiàn))。IronPython能夠直接調(diào)用.net平臺(tái)的各種函數(shù)庫(kù)。可以將Python程序編譯成.net程序。
ZhPy(周蟒)(支持使用繁/簡(jiǎn)中文語句編寫程序的Python語言)

上一篇: 下一篇: