關於Python —— Python教程

開始

Python 是一個易於學習、使用和高效閱讀的編程語言。它具備簡潔的英文語法,編寫更少的代碼,讓程序員專一於業務邏輯而不是語言自己。python

本教程將從深度、專一細節上去理解 Python 這門語言。初學者能夠參考此教程理解相應的內容,本教程將適應你快速將理解的知識應用到實際項目當中。git

下面的內容將解釋 Python 的歷史、特徵、領域、爲何學習 Python、如何安裝 Python 平臺在 Window、Linux 和 Mac OS X 環境以及建立第一個應用程序。程序員

歷史

在上個世紀八十年代末,荷蘭程序員 Guido Van Rossum 在閒暇時間開始編寫 Python,從一開始的業餘項目逐漸成長爲計算機世界中最完善的語言之一。github

什麼致使 Guido 建立了 Python?

1989年12月的聖誕期間,Guido 利用在週末的空閒時間開始開發 Python,他最初的想法是建立一個解釋器,做爲 ABC 編程語言的後代。也是自那之後,Python 逐漸成爲了成熟的編程語言。算法

名字由來

Guido 最初將 Unix/C 程序員做爲主要用戶。重要的是,他喜歡著名的喜劇節目 The Monty Python’s Flying Circus。看節目中,Python 這個名字引發了他的注意,並逐漸喜歡上了,後來就將 Python 做爲這門編程語言的名字。數據庫

發佈時間

Python Version 發佈時間
v0.1.0 1990
v0.9.5 1992/01/02
v1.0.0 1994/01/26
v1.1.0 1994/01/26
v1.2.0 1995/08
v1.3.0 1995/10
v1.4.0 1996/10
v1.5.0 1998/01/03
v1.6.0 2000/09/05
v2.0.0 2000/10/16
v2.7.0 2010/07/03
v3.0.0 2008/12/03
v3.6.6 2018/06
v3.7.0 2018/06
v3.8.0 Latest version

顯著特徵

代碼質量

Python 代碼具備很高的可讀性,這使他更容易重用和維護。它支持多種高級軟件工程範例,例如面向對象和函數編程。編程

開發效率

Python 具備簡潔和優雅的代碼風格。它使用相似英語的語法,而且是動態類型的。所以,你永遠不須要聲明變量。簡單的賦值操做就能將名稱綁定到一個類型的對象。作一樣的操做 Python 會比 C++/Java 代碼少不少。這意味着更少的類型、調試和維護。Python 是解釋型語言,因此不須要編譯和連接,這就提升開發人員的工做效率。網頁爬蟲

代碼可移植性(跨平臺)

由於 Python 是解釋型語言,因此解釋器必須管理可移植性的任務。Python 解釋器在不一樣平臺上執行程序以產生相同的輸出。所以,你永遠不須要擔憂爲不一樣的平臺改變代碼。windows

基礎庫和外置庫(三方庫)

Python 打包成了一個應用程序包,包含預構建和可移植的庫集。因此你能夠在任何須要的地方使用它們。後端

組件整合

有些應用程序須要跨組件來完成交互以支持端到端的工做流程。這樣的組件能夠是 Python 腳本,或者是 Java/C++ 編程的應用程序。

Python 有幾種支持跨應用程序通信的方法。好比它支持加載 C 和 C++ 庫、與 Java 和 DotNet(.net)組件集成、使用 COM/Silverlight 進行通信以及經過串行端口與 USB 設備接口通信等機制。網絡數據交換時可使用 SOAP、XML-RPC 和 CORBA 協議完成。

自由(Free)使用、修改和分發

Python 是 OSS(Open Source Software),任何人均可以自由使用、修改源代碼,也能夠基於商業利益從新分發。正是由於這種開放性,Python 得到了一個龐大的社區基礎,社區也不斷髮展併產生價值。

面向對象

Python 是一門面向對象(OOP)的編程語言。OOP 提供了一種直觀的代碼結構方式,基於背後的思想可讓代碼利用更加充分。大多數時候,面向對象編程能夠將複雜的問題切割成多個小問題,以更好得解決問題。

程序設計領域

Web 應用開發

Python 在網絡開發領域佔有最大份額,不少人所以成爲了全棧開發工程師。這裏面能夠學習到不少框架,例如 Django、Flask、CherryPy 和 Bottle,爲 Web 開發提供了普遍支持。這些框架提供了必要的功能,例如簡化內容管理、訪問後端數據庫以及處理如 HTTP、SMTP、XML-RPC、FTP 和 POP 等有關的網絡協議。用 Python 建立的產品有不少,例如在線產品 Plone(內容管理系統)、Zope 應用服務器、Quixote Web 框架和 ERP5。ERP5 是用於航空航天領域的開源企業級解決方案。

數據科學和機器學習

數據科學、分析和機器學習的發展速度很是快。如今,不少公司正在尋找機器學習工程師,以幫助它們過濾數據堆棧並制定正確的業務決策。Python 已經逐漸成爲了任何人進入 ML 領域的首選編程語言,它爲編程人員提供了各類工具和模型去完成如網頁爬蟲、數據收集、清理和算法之類的任務。因此,若是要進入這些領域,學習 Python 編程是最好的選擇。

科學和數字計算

Python 也成爲了科學和數字應用程序工做中的主要選擇。這有多種緣由,首要緣由是由於 Python 是開源的,它容許全部人修改源代碼並再次分發。

其次,它有不少專業模塊支持這一工做,例如 NumPy、SciPy、Pandas、matplotlib 和 IPython。全部這些都是免費的,而且能夠做爲 Matlab 等付費產品的替代品。這就是 Python 可以在科學和數字領域變得更具優點的緣由之一。

種種緣由,Python 成爲了該領域的領導者,Python 語言可以在擁有可讀性的同時提升生產效率。

GUI 編程

Python 具備一些固有的特質,例如簡潔的編碼語法和動態類型。這些在開發複雜的 GUI 圖像處理應用程序時起到催化劑的做用。

Python 簡潔的語法和許多 GUI 庫(例如 wxWidgets、pyqt 和 pyside)的強大支持使程序員產生了 Inkscape、Scribus、Paint Shop Pro 和 GIMP 等圖像處理軟件。

除了以上 2D 技術解決方案,Python 也產生了不少 3D 動畫軟件,例如 3ds Max、Blender、Cinema 4D、Houdini 和 Maya。這些應用程序與 Python 集成實現自動化,不只加快了工做流程還減小了手動操做的麻煩。

軟件原型

Python 的特質使其快速製做原型成爲可能。Python 重構代碼的輕巧性、多功能性、可伸縮性和靈活性幫助最初的原型加快了開發過程。

此外,Python 也提供了不少簡單易用的接口去建立原型。例如 Pygame(多媒體庫),能夠採用各類形式製做遊戲原型、測試和定製,以符合要求。而後,能夠從選中的原型中得到實現想法,並在其餘如 C++/Java 語言中進行完整的開發。

專業培訓

目前來講,Python 是最適合教學和培訓爲目的的編程語言。它能夠成爲初學者學習編程的墊腳石,它也能夠在數據分析和機器學習等重疊領域有出色發揮。

爲何學習Python?

寫 Python 代碼很是有趣,看起來不會像例行編程任務同樣。

非限制性編程語法

Python 語言使非程序員也可以理解。它是一種易讀的、面向問題的語言,讓你專一於編寫邏輯,而沒必要陷入到語法的混亂之中。

下面是一段實現利息計算器程序。代碼很是簡單,可讓你輕易理解並寫出代碼:

print('Interest Calculator:')

amount = float(input('Principal amount ?'))
roi = float(input('Rate of Interest ?'))
yrs = int(input('Duration (no. of years) ?'))

total = (amount * pow(1 + (roi/100), yrs))
interest = total - amount
print('\nInterest = %0.2f' %interest)
複製代碼

沒有明確聲明

在 Python 中,不須要使用類型來定義變量。定義類型時不須要說明任何數據類型。此外,也不須要使用任何分號來標記結尾。

在 Python 中,縮進會替代方括號將指令分組,可使用製表符(Tab)或空格來縮進代碼。

編寫 Python 也會遵循一些規則( PEP8),例如每一個縮進會佔用四個空格。因此,Python 的許多方面對初學者來講顯得很友好。

面向對象編程

Python 是面向對象編程的語言。它創建一個模型,該模型經過建立對象、定義關係和綁定數據來派生解決方案。面向過程編程採用自頂向下的方法,一次解決一個問題,同時又將問題分解爲較小的問題。而 OOP 編程是一種自底向上的方法,它一開始就尋求解決方案的藍圖,而後將實現留給之後的解決方案。

使用類、創建繼承關係和構造對象是專業程序員必備的能力。使用 Python 可以快速掌握這些概念,而且比其餘語言更快生成高質量的項目代碼。

調試能力

若是在開發過程當中有產品的QA在日誌記錄中出了缺陷,那麼下一步要作的就是調試。一樣,若是客戶反應出問題,那麼調試就變得更加劇要。Python 提供了 pdb、pudb 和 PyDebug 來使調試程序更加容易簡單。

舉個例子,pudb 工具能夠快速指導程序員深刻研究代碼並肯定問題所在。

事實上,大多數編程語言都提供強大的調試工具,可是 Python 在這方面作的更好。

如何安裝Python?

Python 編寫的代碼是與平臺無關的。這也就是說只須要編寫一次代碼就能夠在任何平臺上運行。

Mac OS X

Mac OS X 最新的版本 10.15(Catalina),系統默認安裝的版本是 Python 2.7。雖然說可使用 Python 2 來編寫程序,可是官方已經說明 Python 2 到 2020 年後就再也不提供支持(也就是再也不維護),因此任何人想開始學 Python 都應該升級到最新的 Python 3 版本。

在 Mac 上安裝 Python,能夠到官方下載頁面選擇合適的版本,下載完成後安裝便可。

若是喜歡命令行操做,則可使用一些工具來下載 Python。

首先打開終端下載 HomeBrew 管理工具:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
複製代碼

鍵入如下的命令能夠查看安裝的版本:

$ brew --version
複製代碼

使用 Brew 下載 Python 3.x 版本:

$ brew install python3
複製代碼

安裝 Python 的同時也會安裝 pip(pip3)工具。它是一個更新管理器,可以快速檢查出 Python 存儲庫中可用的模塊。

Linux

Ubuntu 16.04 中默認存在 Python 2 和 Python 3 兩個版本,因此,你可使用 apt-get 工具更新它們到最新版本。

$ sudo apt-get update
$ sudo apt-get -y upgrade
複製代碼

查看當前的版本:

$ python3 -V
複製代碼

而後,還須要安裝 Python 的管理工具 pip:

$ sudo apt-get install -y python3-pip
複製代碼

pip 工具能夠下載最新的文件,也能夠更新當前開發中使用的軟件包:

$ pip3 install <package_to_install>
複製代碼

例如:

$ pip3 install numpy
複製代碼

如今咱們能夠安裝一些之後可能會用到的 libs 和 dev tools:

$ sudo apt-get install build-essential libssl-dev libffi-dev python-dev 
複製代碼

還能夠在系統上爲 Python 的不一樣項目設置隔離空間。這就須要下載 venv 模塊,它是 Python 3 標準庫中的組件。

$ sudo apt-get install -y python3-venv
複製代碼

Window

安裝 Window 版本的 Python 環境須要到官方下載頁面選擇相應的版本下載,完成後安裝便可。

以後須要配置系統的環境變量。有兩種方式,一種是經過手動操做將安裝目錄配置到 PATH 值當中。另外一種是經過終端鍵入如下命令完成設置:

setx PATH "%cd%;%path%;"
pause
複製代碼

上面的 setx 命令將會爲系統的 PATH 設置環境變量。完成後從新打開終端便可測試是否配置成功。

建立第一個Python應用程序

「Hello World!」是全部學習編程的開始。這是一個簡單的程序,可在標準輸出上打印「Hello World!」消息。在終端中能夠這樣作:

➜  ~ python3
Python 3.8.0 (v3.8.0:fa919fdf25, Oct 14 2019, 10:23:27)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello World!')
Hello World!
複製代碼

這樣咱們就成功編寫了第一行代碼。

小結

接下來是正式的 Python 教程內容。

相關文章
相關標籤/搜索