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