您現(xiàn)在的位置是:首頁(yè) >python教程 >python教程一 概念網(wǎng)站首頁(yè)python教程
python教程一 概念
Python3 簡(jiǎn)介
Python 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。
Python 的設(shè)計(jì)具有很強(qiáng)的可讀性,相比其他語(yǔ)言經(jīng)常使用英文關(guān)鍵字,其他語(yǔ)言的一些標(biāo)點(diǎn)符號(hào),它具有比其他語(yǔ)言更有特色語(yǔ)法結(jié)構(gòu)。
Python 是一種解釋型語(yǔ)言: 這意味著開(kāi)發(fā)過(guò)程中沒(méi)有了編譯這個(gè)環(huán)節(jié)。類似于PHP和Perl語(yǔ)言。
Python 是交互式語(yǔ)言: 這意味著,您可以在一個(gè) Python 提示符 >>> 后直接執(zhí)行代碼。
Python 是面向?qū)ο笳Z(yǔ)言: 這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對(duì)象的編程技術(shù)。
Python 是初學(xué)者的語(yǔ)言:Python 對(duì)初級(jí)程序員而言,是一種偉大的語(yǔ)言,它支持廣泛的應(yīng)用程序開(kāi)發(fā),從簡(jiǎn)單的文字處理到 WWW 瀏覽器再到游戲。
Python 發(fā)展歷史
Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國(guó)家數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究所設(shè)計(jì)出來(lái)的。
Python 本身也是由諸多其他語(yǔ)言發(fā)展而來(lái)的,這包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的腳本語(yǔ)言等等。
像 Perl 語(yǔ)言一樣,Python 源代碼同樣遵循 GPL(GNU General Public License)協(xié)議。
現(xiàn)在 Python 是由一個(gè)核心開(kāi)發(fā)團(tuán)隊(duì)在維護(hù),Guido van Rossum 仍然占據(jù)著至關(guān)重要的作用,指導(dǎo)其進(jìn)展。
Python 2.0 于 2000 年 10 月 16 日發(fā)布,增加了實(shí)現(xiàn)完整的垃圾回收,并且支持 Unicode。
Python 3.0 于 2008 年 12 月 3 日發(fā)布,此版不完全兼容之前的 Python 源代碼。不過(guò),很多新特性后來(lái)也被移植到舊的Python 2.6/2.7版本。
Python 3.0 版本,常被稱為 Python 3000,或簡(jiǎn)稱 Py3k。相對(duì)于 Python 的早期版本,這是一個(gè)較大的升級(jí)。
Python 2.7 被確定為最后一個(gè) Python 2.x 版本,它除了支持 Python 2.x 語(yǔ)法外,還支持部分 Python 3.1 語(yǔ)法。
Python 特點(diǎn)
1.易于學(xué)習(xí):Python有相對(duì)較少的關(guān)鍵字,結(jié)構(gòu)簡(jiǎn)單,和一個(gè)明確定義的語(yǔ)法,學(xué)習(xí)起來(lái)更加簡(jiǎn)單。
2.易于閱讀:Python代碼定義的更清晰。
3.易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
4.一個(gè)廣泛的標(biāo)準(zhǔn)庫(kù):Python的最大的優(yōu)勢(shì)之一是豐富的庫(kù),跨平臺(tái)的,在UNIX,Windows和Macintosh兼容很好。
5.互動(dòng)模式:互動(dòng)模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語(yǔ)言,互動(dòng)的測(cè)試和調(diào)試代碼片斷。
6.可移植:基于其開(kāi)放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺(tái)。
7.可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫(xiě)一些不愿開(kāi)放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。
8.數(shù)據(jù)庫(kù):Python提供所有主要的商業(yè)數(shù)據(jù)庫(kù)的接口。
9.GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
10.可嵌入: 你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。
Python 應(yīng)用
Youtube - 視頻社交網(wǎng)站
Reddit - 社交分享網(wǎng)站
Dropbox - 文件分享服務(wù)
豆瓣網(wǎng) - 圖書(shū)、唱片、電影等文化產(chǎn)品的資料數(shù)據(jù)庫(kù)網(wǎng)站
知乎 - 一個(gè)問(wèn)答網(wǎng)站
果殼 - 一個(gè)泛科技主題網(wǎng)站
Bottle - Python微Web框架
EVE - 網(wǎng)絡(luò)游戲EVE大量使用Python進(jìn)行開(kāi)發(fā)
Blender - 使用Python作為建模工具與GUI語(yǔ)言的開(kāi)源3D繪圖軟件
Inkscape - 一個(gè)開(kāi)源的SVG矢量圖形編輯器。
補(bǔ)充
優(yōu)點(diǎn)
簡(jiǎn)單 -- Python 是一種代表簡(jiǎn)單主義思想的語(yǔ)言。閱讀一個(gè)良好的 Python 程序就感覺(jué)像是在讀英語(yǔ)一樣,盡管這個(gè)英語(yǔ)的要求非常嚴(yán)格!Python 的這種偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一。它使你能夠?qū)W⒂诮鉀Q問(wèn)題而不是去搞明白語(yǔ)言本身。
易學(xué) -- 就如同你即將看到的一樣,Python 極其容易上手。前面已經(jīng)提到了,Python 有極其簡(jiǎn)單的語(yǔ)法。
免費(fèi)、開(kāi)源 -- Python 是 FLOSS(自由/開(kāi)放源碼軟件)之一。簡(jiǎn)單地說(shuō),你可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對(duì)它做改動(dòng)、把它的一部分用于新的自由軟件中。FLOSS 是基于一個(gè)團(tuán)體分享知識(shí)的概念。這是為什么 Python 如此優(yōu)秀的原因之一——它是由一群希望看到一個(gè)更加優(yōu)秀的 Python 的人創(chuàng)造并經(jīng)常改進(jìn)著的。
高層語(yǔ)言 -- 當(dāng)你用 Python 語(yǔ)言編寫(xiě)程序的時(shí)候,你無(wú)需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。
可移植性 -- 由于它的開(kāi)源本質(zhì),Python 已經(jīng)被移植在許多平臺(tái)上(經(jīng)過(guò)改動(dòng)使它能夠工作在不同平臺(tái)上)。如果你小心地避免使用依賴于系統(tǒng)的特性,那么你的所有 Python 程序無(wú)需修改就可以在下述任何平臺(tái)上面運(yùn)行。這些平臺(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 開(kāi)發(fā)的 Android 平臺(tái)!
解釋性 -- 這一點(diǎn)需要一些解釋。一個(gè)用編譯性語(yǔ)言比如 C 或 C++ 寫(xiě)的程序可以從源文件(即 C 或 C++ 語(yǔ)言)轉(zhuǎn)換到一個(gè)你的計(jì)算機(jī)使用的語(yǔ)言(二進(jìn)制代碼,即0和1)。這個(gè)過(guò)程通過(guò)編譯器和不同的標(biāo)記、選項(xiàng)完成。當(dāng)你運(yùn)行你的程序的時(shí)候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤(pán)復(fù)制到內(nèi)存中并且運(yùn)行。而 Python 語(yǔ)言寫(xiě)的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行程序。在計(jì)算機(jī)內(nèi)部,Python 解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語(yǔ)言并運(yùn)行。事實(shí)上,由于你不再需要擔(dān)心如何編譯程序,如何確保連接轉(zhuǎn)載正確的庫(kù)等等,所有這一切使得使用 Python 更加簡(jiǎn)單。由于你只需要把你的 Python 程序拷貝到另外一臺(tái)計(jì)算機(jī)上,它就可以工作了,這也使得你的 Python 程序更加易于移植。
面向?qū)ο?-- Python 既支持面向過(guò)程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^(guò)程”的語(yǔ)言中,程序是由過(guò)程或僅僅是可重用代碼的函數(shù)構(gòu)建起來(lái)的。在“面向?qū)ο蟆钡恼Z(yǔ)言中,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來(lái)的。與其他主要的語(yǔ)言如 C++ 和 Java 相比,Python 以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?/p>
可擴(kuò)展性 -- 如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開(kāi),你可以把你的部分程序用 C 或 C++ 編寫(xiě),然后在你的 Python 程序中使用它們。
豐富的庫(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,所有這些功能都是可用的。這被稱作 Python 的“功能齊全”理念。除了標(biāo)準(zhǔn)庫(kù)以外,還有許多其他高質(zhì)量的庫(kù),如 wxPython、Twisted 和 Python 圖像庫(kù)等等。
規(guī)范的代碼 -- Python 采用強(qiáng)制縮進(jìn)的方式使得代碼具有極佳的可讀性。
缺點(diǎn)
運(yùn)行速度,有速度要求的話,用 C++ 改寫(xiě)關(guān)鍵部分吧。
國(guó)內(nèi)市場(chǎng)較小(國(guó)內(nèi)以 Python 來(lái)做主要開(kāi)發(fā)的,目前只有一些 web2.0 公司)。但時(shí)間推移,目前很多國(guó)內(nèi)軟件公司,尤其是游戲公司,也開(kāi)始規(guī)模使用他。
中文資料匱乏(好的 Python 中文資料屈指可數(shù),現(xiàn)在應(yīng)該變多了)。托社區(qū)的福,有幾本優(yōu)秀的教材已經(jīng)被翻譯了,但入門(mén)級(jí)教材多,高級(jí)內(nèi)容還是只能看英語(yǔ)版。
構(gòu)架選擇太多(沒(méi)有像 C# 這樣的官方 .net 構(gòu)架,也沒(méi)有像 ruby 由于歷史較短,構(gòu)架開(kāi)發(fā)的相對(duì)集中。Ruby on Rails 構(gòu)架開(kāi)發(fā)中小型web程序天下無(wú)敵)。不過(guò)這也從另一個(gè)側(cè)面說(shuō)明,python比較優(yōu)秀,吸引的人才多,項(xiàng)目也多。
Python 的主要運(yùn)用領(lǐng)域有:
云計(jì)算:云計(jì)算最熱的語(yǔ)言,典型的應(yīng)用OpenStack
WEB開(kāi)發(fā):許多優(yōu)秀的 WEB 框架,許多大型網(wǎng)站是Python開(kāi)發(fā)、YouTube、Dropbox、Douban……典型的Web框架包括Django
科學(xué)計(jì)算和人工智能:典型的圖書(shū)館NumPy、SciPy、Matplotlib、Enided圖書(shū)館、熊貓
系統(tǒng)操作和維護(hù):操作和維護(hù)人員的基本語(yǔ)言
金融:定量交易、金融分析,在金融工程領(lǐng)域,Python 不僅使用最多,而且其重要性逐年增加。
圖形 GUI:PyQT,WXPython,TkInter
Python 在一些公司的運(yùn)用有:
谷歌:谷歌應(yīng)用程序引擎,代碼。Google.com、 Google 爬蟲(chóng)、Google 廣告和其他項(xiàng)目正在廣泛使用 Python。
CIA:美國(guó)中情局網(wǎng)站是用 Python 開(kāi)發(fā)的。
NASA:美國(guó)航天局廣泛使用 Python 進(jìn)行數(shù)據(jù)分析和計(jì)算。
YouTube:世界上最大的視頻網(wǎng)站 YouTube 是用 Python 開(kāi)發(fā)的。
Dropbox:美國(guó)最大的在線云存儲(chǔ)網(wǎng)站,全部用 Python 實(shí)現(xiàn),每天處理 10 億的文件上傳和下載。
Instagram:美國(guó)最大的照片共享社交網(wǎng)站,每天有 3000 多萬(wàn)張照片被共享,所有這些都是用 Python 開(kāi)發(fā)的。
Facebook:大量的基本庫(kù)是通過(guò) Python 實(shí)現(xiàn)的
Red Hat/Centos:世界上最流行的 Linux 發(fā)行版中的 Yum 包管理工具是用 Python 開(kāi)發(fā)的
Douban:幾乎所有公司的業(yè)務(wù)都是通過(guò) Python 開(kāi)發(fā)的。
知乎:中國(guó)最大的 Q&A 社區(qū),通過(guò) Python 開(kāi)發(fā)(國(guó)外 Quora)
除此之外,還有搜狐、金山、騰訊、盛大、網(wǎng)易、百度、阿里、淘寶、土豆、新浪、果殼等公司正在使用 Python 來(lái)完成各種任務(wù)。