本文收錄在Python從入門到精通系列文章系列
1. Python簡介
1.1 Python的歷史
Python的創始人為吉多·範羅蘇姆(荷蘭語:Guido van Rossum)
- 1989年的聖誕節期間:吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的指令碼解釋程式,作為ABC語言的一種繼承。之所以選中Python作為程式的名字,是因為他是BBC電視劇——蒙提·派森的飛行馬戲團的愛好者。
- 1991年2月:第一個Python編譯器(同時也是直譯器)誕生,它是用C語言實現的(後面又出現了Java和C#實現的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他實現),可以呼叫C語言的庫函式。在最早的版本中,Python已經提供了對"類","函式","異常處理"等構造塊的支援,同時提供了"列表"和"字典"等核心資料型別,同時支援以模組為基礎來構造應用程式。
- 1994年1月:Python 1.0正式釋出。
- 2000年10月16日:Python 2.0釋出,增加了實現完整的垃圾回收,提供了對Unicode的支援。與此同時,Python的整個開發過程更加透明,社群對開發進度的影響逐漸擴大,生態圈開始慢慢形成。
- 2008年12月3日:Python 3.0釋出,此版不完全相容之前的Python原始碼。不過因為目前還有不少公司在專案和運維中使用Python 2.x版本,很多新特性後來也被移植到舊的Python 2.6/2.7版本。
此處借鑑於python維基百科:https://zh.wikipedia.org/wiki/Python
1.2 Python的優缺點
- 簡單和明確,做一件事只有一種方法。
- 學習曲線低,跟其他很多語言相比,Python更容易上手。
- 開放原始碼,擁有強大的社群和生態圈。
- 解釋型語言,天生具有平臺可移植性。
- 支援兩種主流的程式設計正規化(物件導向程式設計和函式式程式設計)都提供了支援。
- 可擴充套件性和可嵌入性,可以呼叫C/C++程式碼,也可以在C/C++中呼叫Python。
- 程式碼規範程度高,可讀性強,適合有程式碼潔癖和強迫症的人群。
- 執行效率稍低,因此計算密集型任務可以由C/C++編寫。
- 程式碼無法加密,但是現在很多公司都不銷售賣軟體而是銷售服務,這個問題會被淡化。
- 在開發時可以選擇的框架太多(如Web框架就有100多個),有選擇的地方就有錯誤。
此處借鑑於python官方文件:https://docs.python.org
1.3 Python的應用領域
目前Python在Web應用開發、雲基礎設施、DevOps、網路爬蟲開發、資料分析挖掘、機器學習等領域都有著廣泛的應用,因此也產生了Web後端開發、資料介面開發、自動化運維、自動化測試、科學計算和視覺化、資料分析、量化交易、機器人開發、影象識別和處理等一系列的職位。
2. 搭建程式設計環境
2.1 Windows環境
可以在Python官方網站下載到Python的Windows安裝程式(exe檔案),我下載的是python-3.7.3.exe版本,需要注意:
- 如果在Windows 7環境下安裝Python 3.x,需要先安裝Service Pack 1補丁包(可以通過一些工具軟體自動安裝系統補丁的功能來安裝);
- 安裝過程建議勾選"Add Python 3.7 to PATH"(將Python 3.6新增到PATH環境變數)並選擇自定義安裝;
- 如果系統顯示api-ms-win-crt*.dll檔案缺失,直接在微軟官網下載Visual C++ Redistributable for Visual Studio 2015檔案進行修復;如果是因為更新Windows的DirectX之後導致某些動態連結庫檔案缺失問題,可以下載一個DirectX修復工具進行修復。
2.2 Linux環境
Linux環境自帶了Python 2.x版本,但是如果要更新到3.x的版本,可以在Python的官方網站下載Python的原始碼並通過原始碼構建安裝的方式進行安裝,具體的步驟如下所示。
(1)安裝依賴庫(因為沒有這些依賴庫可能在原始碼構件安裝時因為缺失底層依賴庫而失敗)。
[root@python ~]# yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel wget
(2)下載Python原始碼並解壓縮到指定目錄
[root@python ~]# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
[root@python ~]# tar -xvf Python-3.7.3.tgz
(3)切換至Python原始碼目錄並執行下面的命令進行配置和安裝
[root@python ~]# cd Python-3.7.3/
[root@python Python-3.7.3]# ./configure --prefix=/usr/local/python37 --enable-optimizations
[root@python Python-3.7.3]# make && make install
(4)配置PATH環境變數並使其生效
[root@python ~]# vim /etc/profile.d/python
export PATH=$PATH:/usr/local/python37/bin
[root@python ~]# source /etc/profile.d/python
2.3 macOS環境
macOS也自帶了Python 2.x版本,可以通過Python的官方網站提供的安裝檔案(pkg檔案)安裝Python 3.x的版本。預設安裝完成後,可以通過在終端執行python命令來啟動2.x版本的Python直譯器,可以通過執行python3命令來啟動3.x版本的Python直譯器。
3. 從終端執行Python程式
3.1 確認Python的版本
python --version
(2)或者是在Linux或macOS系統的終端中鍵入下面的命令。
python3 --version
(3)當然也可以先輸入python或python3進入互動式環境,再執行以下的程式碼檢查Python的版本。
[root@python ~]# python3
>>> import sys
>>> print(sys.version_info)
sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0)
>>> print(sys.version)
3.7.3 (default, Apr 26 2019, 14:42:46)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
3.2 編寫Python原始碼
可以用文字編輯工具(推薦使用Sublime、TextMate、Visual Studio Code等高階文字編輯工具)編寫Python原始碼並用py作為字尾名儲存該檔案,程式碼內容如下所示。
print('hello world!')
3.3 執行程式
切換到原始碼所在的目錄並執行下面的命令,看看螢幕上是否輸出了"hello, world!"。
[root@python ~]# python hello.py
hello world!
或
[root@python ~]# python3 hello.py
hello world!
3.4 程式碼中的註釋
註釋是程式語言的一個重要組成部分,用於在原始碼中解釋程式碼的作用從而增強程式的可讀性和可維護性,當然也可以將原始碼中不需要參與執行的程式碼段通過註釋來去掉,這一點在除錯程式的時候經常用到。註釋在隨原始碼進入前處理器或編譯時會被移除,不會在目的碼中保留也不會影響程式的執行結果。
""" 第一個Python程式 - hello, world! 向偉大的Dennis M. Ritchie先生致敬 Version: 0.1 Author: 阿龍 """
"""
第一個Python程式 - hello, world!
向偉大的Dennis M. Ritchie先生致敬
Version: 0.1
Author: 阿龍
"""
print('hello, world!')
# print("你好,世界!")
print('你好', '世界')
print('hello', 'world', sep=', ', end='!\n')
print('goodbye, world', end='!\n')
(2)執行
[root@python ~]# python3 hello.py
hello, world!
你好 世界
hello, world!
goodbye, world!
4. 其他工具介紹
4.1 IDLE - 自帶的整合開發工具
IDLE是安裝Python環境時自帶的整合開發工具,如下圖所示。但是由於IDLE的使用者體驗並不是那麼好所以很少在實際開發中被採用。
4.2 IPython - 更好的互動式程式設計工具
IPython是一種基於Python的互動式直譯器。相較於原生的Python互動式環境,IPython提供了更為強大的編輯和互動功能。可以通過Python的包管理工具pip安裝IPython和Jupyter,具體的操作如下所示。
pip install ipython
或
pip3 install ipython
注:如果報錯,加2個引數
[root@python ~]# pip3 install --trusted-host pypi.org --trusted-host files.pythonhosted.org ipython
原因:當前python版本是3.7,網上查詢說是python高版本需要驗證ssl
(2)安裝成功後,可以通過下面的ipython命令啟動IPython,如下圖所示。
4.3 Jupyter - 網頁程式設計工具
當然,我們也可以通過安裝Jupyter工具並執行名為notebook的程式在瀏覽器視窗中進行互動式程式碼編寫操作。
pip install jupyter
或
pip3 intall jupyter
[root@python ~]# jupyter notebook --ip=192.168.200.101 --port=80 --allow-root
注:
4.4 Sublime - 文字編輯神器
- 首先可以通過官方網站下載安裝程式安裝Sublime 3或Sublime 2。
- 安裝包管理工具。
- 通過快捷鍵Ctrl+`或者在View選單中選擇Show Console開啟控制檯,輸入下面的程式碼。
- Sublime 3
import urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
- Sublime 2
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')
- Sublime 3
- 手動安裝瀏覽器輸入 https://sublime.wbond.net/Package%20Control.sublime-package 下載這個檔案,下載好以後,開啟sublime text,選擇選單Preferences->Browse Packages... 開啟安裝目錄此時會進入到一個叫做Packages的目錄下,點選進入上一層目錄Sublime Text3,在此目錄下有一個資料夾叫做Installed Packages,把剛才下載的檔案放到這裡就可以了。然後重啟sublime text3,觀察Preferences選單最下邊是否有Package Settings 和Package Control兩個選項,如果有,則代表安裝成功了。
- 通過快捷鍵Ctrl+`或者在View選單中選擇Show Console開啟控制檯,輸入下面的程式碼。
- 安裝外掛。通過Preference選單的Package Control或快捷鍵Ctrl+Shift+P開啟命令皮膚,在皮膚中輸入Install Package就可以找到安裝外掛的工具,然後再查詢需要的外掛。我們推薦大家安裝以下幾個外掛:
- SublimeCodeIntel - 程式碼自動補全工具外掛。
- Emmet - 前端開發程式碼模板外掛。
- Git - 版本控制工具外掛。
- Python PEP8 Autoformat - PEP8規範自動格式化外掛。
- ConvertToUTF8 - 將本地編碼轉換為UTF-8。
4.5 Visual Studio Code - 輕量級但功能強大的原始碼編輯器
- 官網地址:https://code.visualstudio.com/
- 我下載的版本:https://vscode.cdn.azure.cn/stable/0f3794b38477eea13fb47fbe15a42798e6129338/VSCodeUserSetup-x64-1.36.0.exe
說明:事實上Visual Studio Code可能是更好的選擇(我使用的是VS code),它不用花錢並提供了更為完整和強大的功能。
4.6 PyCharm - Python開發神器
PyCharm的安裝、配置和使用稍後會編寫一篇《玩轉PyCharm》進行了介紹,有興趣的讀者可以選擇閱讀。
5. 練習
5.1 在Python互動環境中檢視下面的程式碼結果,並試著將這些內容翻譯成中文。
import this
說明:當前鍵入上面的命令後會在互動式環境中看到如下所示的輸出,這段內容被稱為"Python之禪",裡面講述的道理不僅僅適用於Python,也適用於其他程式語言。
5.2 學習使用turtle在螢幕上繪製圖形。
說明:turtle是Python內建的一個非常有趣的模組,特別適用於讓小朋友體會什麼是程式設計,它最早是Logo語言的一部分,Logo語言是Wally Feurzig和Seymour Papert在1966發明的程式語言.
import turtle
turtle.pensize(4)
turtle.pencolor('red')
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.mainloop()
結果展示: