python入门基础教程02 Python简介
02 Python簡介
Python簡介
Python是一種解釋型、面向?qū)ο蟆?dòng)態(tài)數(shù)據(jù)類型的高級程序設(shè)計(jì)語言,屬于應(yīng)用層軟件。自從20 世紀(jì)90 年代初Python語言誕生至今,它逐漸被廣泛應(yīng)用于處理系統(tǒng)管理任務(wù)、自動(dòng)化運(yùn)維、圖像處理游戲和Web 網(wǎng)站開發(fā)等領(lǐng)域。Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語言之一。4、易讀以及可擴(kuò)展性,在國外用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python教授程序設(shè)計(jì)課程。例如麻省理工學(xué)院的計(jì)算機(jī)科學(xué)及編程導(dǎo)論課程就使用Python語言講授。眾多開源的科學(xué)計(jì)算軟件包都提供了Python 的調(diào)用接口,例如著名的計(jì)算機(jī)視覺庫OpenCV、三維可視化庫VTK、醫(yī)學(xué)圖像處理庫ITK。而Python專用的科學(xué)計(jì)算擴(kuò)展庫就更多了,例如如下3 個(gè)十分經(jīng)典的科學(xué)計(jì)算擴(kuò)展庫:NumPy、SciPy 和matplotlib,它們分別為Python提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能。因此Python語言及其眾多的擴(kuò)展庫所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實(shí)驗(yàn)數(shù)據(jù)、制作圖表,甚至開發(fā)科學(xué)計(jì)算應(yīng)用程序。
Python開發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法來做一件事”。
Python的歷史
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)為是由其非開放性使用原則所造成的。Guido 決心在 Python 中避免這一錯(cuò)誤(的確如此,Python 與其它的語言如C、C++和Java結(jié)合的非常好)。同時(shí),他還想實(shí)現(xiàn)在 ABC 中閃現(xiàn)過但未曾實(shí)現(xiàn)的東西。
就這樣,Python就在Guido手中誕生了。實(shí)際上,Python 首先是在Mac機(jī)上實(shí)現(xiàn)的??梢哉f,Python 是從ABC發(fā)展起來,主要受到了Modula-3 (另一種相當(dāng)優(yōu)美且強(qiáng)大的語言,為小型團(tuán)體所設(shè)計(jì)的)的影響。并且結(jié)合了Unix shell和C的習(xí)慣。成為一門為眾多UNIX 和Linux開發(fā)者所青睞的開發(fā)語言。5
Python語言特色
可擴(kuò)充性可以說是Python能作為一種編程語言的一大特色。擴(kuò)展的新的模塊(module)可以用C 或 C++ 寫成。而我們也可為現(xiàn)成的模塊加上Python的接口。Python 可以使用戶避免過分的語法的羈絆而將精力主要集中到所要實(shí)現(xiàn)的程序任務(wù)(邏輯)上。
Python也被稱為是一門清晰的語言。因?yàn)樗淖髡咴谠O(shè)計(jì)它的時(shí)候,總的指導(dǎo)思想是,對于一個(gè)特定的問題,只要有一種最好的方法來解決就好了。
Python語言是一種清晰的語言的另一個(gè)意思是,它的作者有意的設(shè)計(jì)限制性很強(qiáng)的語法,使得不好的編程習(xí)慣(例如if 語句的下一行不向右縮進(jìn))都不能通過編譯。這樣有意的強(qiáng)制程序員養(yǎng)成良好的編程習(xí)慣。其中很重要的一項(xiàng)就是Python的縮進(jìn)規(guī)則。
Python前景
Python在編程領(lǐng)域的占有率一直處于穩(wěn)步上升之中,根據(jù)最新的數(shù)據(jù),Python排名第七。前六名分別是Java,C,VB,C++,PHP和Perl。隨著微軟將Python納入.Net 平臺,相信Python的將來會更加強(qiáng)勁發(fā)展。Python 很可能會成為.Net平臺快速開發(fā)的主流語言。欲了解這方面情況,請參考Iron Python的相關(guān)信息。
著名的搜索引擎 Google 也大量使用Python。更加令人吃驚的是,在Nokia 智能手機(jī)所采用的Symbian操作系統(tǒng)上,Python同樣也可以運(yùn)行在Android手機(jī)操作系統(tǒng)上,有很多Python愛好者通過Android平臺來學(xué)習(xí)Python語言,無理由不相信Python將 成為繼C++,Java 之后的第三個(gè)編程語言!可見Python 的影響力之巨大。
Python的語言地位
通常認(rèn)為,Python是一種解釋性的語言,但是這種說法是不正確的,實(shí)際上Pyt hon在執(zhí)行時(shí),首先會將.py 文件中的源代碼編譯成Python的byte code (字節(jié)碼),然后再由Python Virtual Machine來執(zhí)行這些編譯好的byte code。這種機(jī)制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java 或.NET的Virtual Machine 不同的是,Python的Virtual Machine 是一種更高級的Virtual Machine。 這里的高級并不是通常意義上的高級,不是說Python 的Virtual Machine比Java 或.NET 的功能更強(qiáng)大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實(shí)機(jī)器的距離更遠(yuǎn)?;蛘呖梢赃@么說,Python的Virtual Machine 是一種抽象層次更高的Virtual Machine。
Python的應(yīng)用領(lǐng)域
Python 不僅僅是一個(gè)設(shè)計(jì)優(yōu)秀的程序語言,它能夠完成現(xiàn)實(shí)中的各種任務(wù),包括開發(fā)者們?nèi)諒?fù)一日所做的事情。作為編制其他組件、實(shí)現(xiàn)獨(dú)立程序的工具,它通常應(yīng)用于各種領(lǐng)域。實(shí)際上,作為一種通用語言,Python 的應(yīng)用角色幾乎是無限的:你可以在任何場合應(yīng)用Python, 從網(wǎng)站和游戲開發(fā)到機(jī)器人和航天飛機(jī)控制。
盡管如此,Python 的應(yīng)用領(lǐng)域分為如下幾類。下文將介紹一些Python 如今最常見的應(yīng)用領(lǐng)域,以及每個(gè)應(yīng)用領(lǐng)域內(nèi)所用的一些工具。我們不會對各個(gè)工具進(jìn)行深入探討,如果你對這些話題感興趣,請從Python 網(wǎng)站或其他一些資源中獲取更多的信息。6
系統(tǒng)編程
Python 對操作系統(tǒng)服務(wù)的內(nèi)置接口,使其成為編寫可移植的維護(hù)操作系統(tǒng)的管理工具和部件(有時(shí)也被稱為Shell 工具)的理想工具。Python 程序可以搜索文件和目錄樹,可以運(yùn)行其他程序,用進(jìn)程或線程進(jìn)行并行處理等等。
Python 的標(biāo)準(zhǔn)庫綁定了POSIX 以及其他常規(guī)操作系統(tǒng)(OS )工具:環(huán)境變量、文件、套接字、管道、進(jìn)程、多線程、正則表達(dá)式模式匹配、命令行參數(shù)、標(biāo)準(zhǔn)流接口、Shell 命令啟動(dòng)器、文件名擴(kuò)展等。此外,很多Python 的系統(tǒng)工具設(shè)計(jì)時(shí)都考慮了其可移植性。例如,復(fù)制目錄樹的腳本無需做任何修改就可以在幾乎所有的Python 平臺上運(yùn)行。
用戶圖形接口
Python 的簡潔以及快速的開發(fā)周期十分適合開發(fā)GUI 程序。Python 內(nèi)置了TKinter 的標(biāo)準(zhǔn)面向?qū)ο蠼涌赥k GUI API ,使Python 程序可以生成可移植的本地觀感的GUI應(yīng)用程序 。Python/Tkinter GUI 不做任何改變就可以運(yùn)行在微軟Windows 、X Windows(UNIX 和Linux )以及Mac OS(Classic 和OS X 都支持)等平臺上。一個(gè)免費(fèi)的擴(kuò)展包PMW ,為Tkinter 工具包增加了一些高級部件。此外,基于C++ 平臺的工具包wxPython GUI API 可以使用Python 構(gòu)建可移植的GUI應(yīng)用程序 。
諸如PythonCard 和Dabo 等一些高級工具包均是構(gòu)建在wxPython 和Tkinter 的基礎(chǔ)API 之上的。對于運(yùn)行于瀏覽器中的應(yīng)用程序,Jython(Java 版本的Python ,我們將會在第2章中進(jìn)行介紹)和Python 服務(wù)器端CGI 腳本提供了其他一些用戶界面的選擇。
數(shù)據(jù)庫編程
對于傳統(tǒng)的數(shù)據(jù)庫需求,Python 提供了對所有主流關(guān)系數(shù)據(jù)庫系統(tǒng)的接口,例如,Sybase 、Oracle 、Informix 、ODBC 、MySQL 、PostgreSQL 、SQLite等常用的數(shù)據(jù)庫Python均有相應(yīng)的接口函數(shù)庫訪問這些數(shù)據(jù)庫。Python定義了一種通過Python 腳本存取SQL數(shù)據(jù)庫系統(tǒng)的且可移植的數(shù)據(jù)庫API 接口函數(shù),這個(gè)API對于各種底層應(yīng)用的數(shù)據(jù)庫系統(tǒng)都是統(tǒng)一的。例如,因?yàn)閺S商的接口實(shí)現(xiàn)為可移植的API ,所以一個(gè)寫給自由軟件MySQL數(shù)據(jù)庫訪問應(yīng)用腳本在很大程度上不需改變就可以工作在其他數(shù)據(jù)庫系統(tǒng)上(例如,Oracle),僅僅需要將底層的廠商接口替換掉就可以實(shí)現(xiàn)。
數(shù)值計(jì)算和科學(xué)計(jì)算編程
我們之前提到過的Python數(shù)值編程方面的擴(kuò)展包NumPy包括很多高級工具,例如,矩陣對象、標(biāo)準(zhǔn)數(shù)學(xué)庫的接口等。通過NumPy將Python 變成一個(gè)縝密嚴(yán)謹(jǐn)并簡單易用的數(shù)值計(jì)算工具,其他一些數(shù)值計(jì)算工具為Python 提供了動(dòng)畫、3D 可視化、并行處理等功能的支持。
游戲、圖像、人工智能等
Python可以利用pygame系統(tǒng)進(jìn)行圖像圖形處理和游戲編程;用PIL和其他的一些工具進(jìn)行圖像處理;用PyRo 工具包進(jìn)行機(jī)器人控制編程;用xml 庫、xmlrpclib 模塊和其他一些第三方擴(kuò)展進(jìn)行XML 解析;使用神經(jīng)網(wǎng)絡(luò)仿真器和專業(yè)的系統(tǒng)shell進(jìn)行AI 編程;使用NLTK 包進(jìn)行自然語言分析:甚至可以使用PySol 程序下棋娛樂。可以從Vaults of Parnassus 以及新的PyPI 網(wǎng)站(請?jiān)贕oogle 或http://www.python.org 上獲得具體鏈接)找到這些領(lǐng)域的更多支持。
組件集成
在介紹Python 作為控制語言時(shí),曾涉及它的組件集成的角色。Python 可以通過C/C++ 系統(tǒng)進(jìn)行擴(kuò)展,并能夠嵌套C/C++ 系統(tǒng)的特性,使其能夠作為一種靈活的粘合語言,腳本化處理其他系統(tǒng)和組件的行為。例如,將一個(gè)C 庫集成到Python 中,能夠利用Python 進(jìn)行測試并調(diào)用庫中的其他組件;將Python 嵌入到產(chǎn)品中,在不需要重新編譯整個(gè)產(chǎn)品或分發(fā)源代碼的情況下,能夠進(jìn)行產(chǎn)品的單獨(dú)定制。
為了在腳本中使用,在Python 連接編譯好組件時(shí),例如,SWIG 和SIP 這樣的代碼生成工具可以讓這部分工作自動(dòng)完成。更大一些的框架,例如,Python 的微軟Windows 所支持的COM 、基于Java 實(shí)現(xiàn)的Jython 、 基于.NET 實(shí)現(xiàn)的IronPython 和各種CORBA 工具包,提供了多種不同的腳本組件。例如,在Windows 中,Python 腳本可利用框架對微軟Word 和Excel 文件進(jìn)行腳本處理。
Internet腳本
Python 提供了標(biāo)準(zhǔn)Internet 模塊,使Python 能夠廣泛地在多種網(wǎng)絡(luò)任務(wù)中發(fā)揮作用,無論是在服務(wù)器端還是在客戶端都是如此。腳本可以通過套接字進(jìn)行通信;從發(fā)給服務(wù)器端的CGI 腳本的表單中解析信息;通過URL 獲取網(wǎng)頁;從獲取的網(wǎng)頁中解析HTML 和XML 文件;通過XML-RPC 、SOAP 和Telnet 通信等。Python 的庫使這一切變得相當(dāng)簡單。
轉(zhuǎn)載于:https://blog.51cto.com/jeapedu/1616997
總結(jié)
以上是生活随笔為你收集整理的python入门基础教程02 Python简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生成密码函数
- 下一篇: 【原创】存储器设计思想——冯诺依曼结构和