學習Python前,你需要先了解Python語言

Python已經成為目前最流行的編程語言之一,在各種語言排行榜中位居前列。人們用Python自學編程,用它教大學裡的第一門計算機科學課程。Python也被廣泛用在互聯網應用、數據處理和科學計算領域,以及各種應用系統的開發中。

首先簡單介紹Python語言的一些基本情況,包括其發展和使用的情況,而後簡單介紹Python語言系統的安裝和使用。

Python語言簡介

Python語言是CWI(荷蘭國家數學和計算機研究中心)的程序員Guido van Rossum從1989年開始開發的一種高級語言,他的初始目標是希望能更方便地管理CWI的Amoeba操作系統,後來該語言由於各方面的優點而逐漸流行。今天,Python已經發展成世界上使用最廣泛的編程語言之一,在全世界(包括中國)形成了鞏固的用戶社群。人們已經用Python開發了大量實際應用系統,也積累了許多基礎資源。

Python語言的發展和應用

Python語言目前由Python軟件基金會(Python Software Foundation,PSF)主導開發和管理。PSF是一個非營利性的國際組織。Python的官方網址為python.org,在那裡可以找到有關Python語言和系統開發的最新信息,還有許多資源信息和鏈接。

Python語言的開發經歷了許多版本。2000年發佈的Python 2.0表明該語言進入了一個新階段,也是國際上較廣泛地接受它的標誌性事件。Python 3.0於2008年年底發佈,設計中整合了有關語言發展的許多成熟想法,對語言做了全面清理,修正了許多重要缺陷,使整個語言的概念體系更加清晰,各方面的結構更具有統一性。

目前,Python的發展和使用還處於2.0版與3.0版並存的階段。PSF早已宣告Python 2.7是Python 2的最後版本,今後只做有限完善,不再做大的版本升級,開發和研究力量將集中到Python 3.0的開發。經過幾年發展,Python 3.5於2015年9月發佈,Python 3.6於2016年12月發佈。有統計顯示,目前,Python 2.0和3.0在實際開發中的使用比例大約各佔一半(2016年下半年的情況),後者的使用比例正在不斷上升。有消息說PSF和各重要Python庫的開發者都已確定,在2020年以後不再支持Python 2。

由於這些情況,本書選擇Python 3.0作為工作語言,以適應發展需要。書中所有實例(及所附代碼)都在3.5或3.6版本的系統中開發和測試,但這些代碼並不特定於這些版本(除個別專門說明的例外),大都能在各種Python 3.0版本的系統上運行。

Python語言的特點

Python的一個重要設計目標是讓程序簡單、清晰和優雅,堅持一套整齊劃一的設計風格。Python程序具有易寫、易讀、易維護的特點,受到廣大程序員歡迎。這些特質也是導致Python的使用越來越廣泛的原因。21世紀以來,Python已發展為世界上最受歡迎的編程語言之一,其使用非常廣泛。國際上一些公司做過(或一直在做)各種編程語言使用情況的調查,統計結果中Python都位於前四五名之內。它還被TIOBE編程語言排行榜(最有影響力的語言排行榜之一)評為2010年的年度語言。

Python被廣泛認為是一種容易入門的語言。實際上,Python語言機制的跨度比較大,從完成最簡單計算的表達式開始,一直延伸到許多當前最先進的編程概念,如面向對象的程序設計、數據抽象、迭代器、異步編程等。這些情況有利於學習者在一個語言裡逐步深入地學習許多編程概念和技術。Python用正文縮進形式表現程序的結構,具有較好的可讀性。

Python是一種比較高級的編程語言。除了最基本的編程機制外,它還提供了使用方便的數據功能,可以很方便地組織和管理大批數據。Python的所有編程機制和結構都圍繞著對象的概念,程序裡定義和操作的各種實體都是對象,不僅所有數據都是對象,函數和類等也是對象。它也能很好支持面向對象編程的理念和相關技術。

由於其基本設計的一些特點,Python代碼和部件比較容易重用,已開發的程序容易修改和擴充,有利於軟件的升級改造,可以減輕軟件開發者的工作負擔,提高程序開發的效率。此外,Python語言的設計也為開發大規模軟件系統提供了很好支持。這些是許多IT公司樂於選擇和使用Python作為其主要開發語言的重要原因。

在用Python開發程序時,可以採用交互式的執行方式,隨時把代碼發送給系統,立刻看到執行效果。這種方式使人更容易在編程中做各種試驗,可以提高工作效率。一個Python程序文件(稱為模塊)的內容就是一系列簡單或複雜的命令的序列。人們也把這樣的語言稱為腳本語言(script language),其程序就像一個工作腳本。

實際上,Python並不是簡單的腳本語言,而是一個能支持大規模軟件開發的通用編程語言,其實現具有較高的執行效率。PSF的Python系統帶有一個很大的標準庫,提供了很多在實際開發中非常有用的功能。此外,全世界的開發者已經為Python開發了面向各種應用領域的大量專用程序包,例如面向圖形用戶界面的設計和編程,面向網絡應用、數值計算、數據統計和處理、圖形圖像處理、可視化等。針對所有重要應用領域,都可以找到相關的程序包,大大方便了人們用Python開發領域應用軟件和綜合性軟件的工作。

Python語言和標準庫的設計特別考慮了可擴充性,提供了豐富的接口和工具,使有經驗的程序員比較容易使用其他語言,例如C、C++、CPython(一種專門用於擴充Python的C語言工具)等編寫Python模塊,然後能像Python標準庫包一樣方便地使用。這種情況也使一些大公司把Python用作高級的粘接語言(glue language),用一些較低級的語言實現一批性能要求較高的完成具體工作任務的模塊,而後用Python實現整個系統的高層控制和調度。這樣做,既能獲得很好的開發效率,也有利於修改和擴充。

Python基金會提供最新版本的Python語言系統和基本開發環境,任何人都可以免費獲取。該系統可以在各種主流計算機和軟件平臺上運行,包含了豐富的標準程序庫和完整文檔。此外,也存在另外一些商業的或非商業的Python系統可供選擇。經過多年使用,全世界的Python開發者和使用者已經形成了一個活躍的專業社群,活躍在世界各地(包括中國),探討、交流學習和使用Python的經驗。互聯網有很多與Python有關的信息,有許多Python討論組。這些都促進了Python語言的學習和傳播。

當然,Python也不是完美無缺的(完美的語言並不存在),也有些缺點。還有一些使用需要注意的問題。後面討論中也會提到一些這方面的情況。

Python的應用情況

Python已經有了非常廣泛的實際使用。國際上的許多知名IT公司和機構以其作為主要開發語言,如美國的Google、Yahoo!、Dropbox等大公司,CERN(歐洲原子能研究中心)、NASA(美國國家航空航天局)等重要機構,還有大量較小的公司和機構。國內企業的應用正在發展,有較大影響的豆瓣網就是用Python開發的。

此外,全世界Python社區一直在努力,開發了許多適合各領域需要的Python包,這些工作也大大推動了Python的應用。例如,Python的科學計算專用擴展庫,包括NumPy(高效的數組數據處理)、SciPy(高性能數值運算)和matplotlib(數學繪圖庫)等。大量面向數據處理和計算的開源包也為Python使用提供了接口(可作為庫調用,支持Python應用開發),如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫學圖像處理庫ITK等。Python語言與這些庫結合,構成的開發環境很適合工程技術人員和科研人員處理實驗數據、製作圖表,以及開發科學和工程計算方面的應用程序。在應用系統領域,Python社群開發了一批支持網絡應用開發的Python庫和其他方面的庫及編程框架,這些工作和後續經驗的積累,已經使Python成為目前使用最多的應用系統開發語言之一。

Python還被廣泛用於複雜的和大規模的數據處理,成為目前人們在研究、開發大數據和人工智能等熱門發展方向時使用最多的語言之一。

Python語言參考材料

Python軟件基金會通過python.org提供了很多與Python語言和編程有關的材料,其Python系統(稱為CPython實現,詳見下一節)包含一套文檔,主要內容包括如下。

  • The Python Tutorial(Python教程),其內容是Python各方面基本情況的介紹,基本使用規則,以及一些簡單的程序示例。
  • The Python Language Reference(Python語言手冊),詳細介紹Python語言的整體情況和各種特徵。學習和使用中應經常查閱這個手冊。
  • The Python Standard Library(Python標準庫手冊),介紹Python的所有內置常量、內置函數和內置類型,以及標準庫的一大批程序包。這些程序包提供了許多重要功能,包括一些系統功能,以及許多支持應用開發的功能。
  • 其他內容,包括CPython系統的情況,典型編程問題的常見處理方式(HOWTO),一些常見問題(FAQ)、術語和解釋等。

近年來,由於Python語言的發展和普及,國內外出版了不少有關Python編程的書籍。國外出版的許多相關書籍有中文譯本,也有一些國內作者撰寫的書籍。本書最後的“推薦閱讀書目”列出了幾本,供讀者參考。

異步圖書Python路線圖

學習Python前,你需要先了解Python語言

Python圖書線路圖

入門篇


學習Python前,你需要先了解Python語言


《Python編程無師自通》

作者:[美] 科裡•奧爾索夫(Cory Althoff)

在美國亞馬遜,有一本書的影響力超高的Python入門書,Kindle版本在美國亞馬遜網站的計算機軟件、軟件開發分類中排行均為第一,超越了眾多實力派Python書,眾多五星好評。也許你有所耳聞,這本書就是《Python編程無師自通——專業程序員的養成》。

《Python編程無師自通——專業程序員的養成》作者是一名自學成才的程序員,作為一名文科生他通過自學編程,掌握了編程技能並在eBay找到了一份軟件工程師的工作。這本書是作者結合個人經驗寫作而成,旨在幫助讀者從外行成長為一名專業的Python程序員。


學習Python前,你需要先了解Python語言


《Python編程從入門到精通》

作者:葉維忠

本書循序漸進、由淺入深地詳細講解了Python語言開發技術,並通過具體實例演練了各個知識點的具體使用流程。全書共23章,其中第1~2章是基礎知識部分,講解了Python語言開發的基礎知識,包括搭建開發環境和基礎語法介紹;第3~9章是核心技術部分,分別講解了簡單數據類型,運算符和表達式,條件語句,循環語句,使用列表,使用元組、字典和集合,使用函數等知識,這些內容都是Python語言中最重要的語法知識;第10~15章是知識進階部分,分別講解了面向對象(上)、面向對象(下)、文件操作處理、異常處理、正則表達式、多線程開發知識。


學習Python前,你需要先了解Python語言


《Python程序設計》(第3版)

作者:【美】John Zelle

Python之父作序推薦 ,Python 3 編程入門經典。本書以Python語言為工具教授計算機程序設計。本書強調解決問題、設計和編程是計算機科學的核心技能。本書特色鮮明、示例生動有趣、內容易讀易學,適合Python入門程序員閱讀,也適合高校計算機專業的教師和學生參考。


學習Python前,你需要先了解Python語言


《數據結構(Python語言描述)》

作者:【美】Kenneth A. Lambert(蘭伯特)

在計算機科學中,數據結構是一門進階性課程,概念抽象,難度較大。Python語言的語法簡單,交互性強。用Python來講解數據結構等主題,比C語言等實現起來更為容易,更為清晰。

《數據結構 Python語言描述》第 1章簡單介紹了Python語言的基礎知識和特性。第 2章到第4章對抽象數據類型、數據結構、複雜度分析、數組和線性鏈表結構進行了詳細介紹,第5章和第6章重點介紹了面向對象設計的相關知識、第5章包括接口和實現之間的重點差異、多態以及信息隱藏等內容,第6章主要講解繼承的相關知識,第7章到第9章以棧、隊列和列表為代表,介紹了線性集合的相關知識。第 10章介紹了各種樹結構,第 11章講解了集和字典的相關內容,第 12章介紹了圖和圖處理算法。每章**後,還給出了複習題和案例學習,幫助讀者鞏固和思考。


學習Python前,你需要先了解Python語言


《Python編程快速上手——讓繁瑣工作自動化》

作者:【美】Al Sweigart(斯維加特)

如今,人們面臨的大多數任務都可以通過編寫計算機軟件來完成。Python是一種解釋型、面向對象、動態數據類型的高 級程序設計語言。通過Python編程,我們能夠解決現實生活中的很多任務。

本書是一本面向實踐的Python編程實用指南。本書的目的,不僅是介紹Python語言的基礎知識,而且還通過項目實踐教會讀者如何應用這些知識和技能。本書的首部分介紹了基本Python編程概念,第 二部分介紹了一些不同的任務,通過編寫Python程序,可以讓計算機自動完成它們。第 二部分的每一章都有一些項目程序,供讀者學習。每章的末尾還提供了一些習題和深入的實踐項目,幫助讀者鞏固所學的知識。附錄部分提供了所有習題的解答。


學習Python前,你需要先了解Python語言


《Python核心編程》(第3版)

作者:【美】Wesley Chun(衛斯理 春)

《Python核心編程(第3版)》是經典暢銷圖書《Python核心編程(第 二版)》的全新升級版本,總共分為3部分。第 1部分為講解了Python的一些通用應用,包括正則表達式、網絡編程、Internet客戶端編程、多線程編程、GUI編程、數據庫編程、Microsoft Office編程、擴展Python等內容。第 2部分講解了與Web開發相關的主題,包括Web客戶端和服務器、CGI和WSGI相關的Web編程、Django Web框架、雲計算、高 級Web服務。第3部分則為一個補充/實驗章節,包括文本處理以及一些其他內容。

相關推薦

推薦中...