初識(shí)Python
Python簡(jiǎn)介
Python的歷史
1.1989年圣誕節(jié):Guido von Rossum開始寫Python語(yǔ)言的編譯器。
2.1991年2月:第一個(gè)Python編譯器(同時(shí)也是解釋器)誕生,它是用C語(yǔ)言實(shí)現(xiàn)的(后面),可以調(diào)用C語(yǔ)言的庫(kù)函數(shù)。在最早的版本中,Python已經(jīng)提供了對(duì)“類”,“函數(shù)”,“異常處理”等構(gòu)造塊的支持,還有對(duì)列表、字典等核心數(shù)據(jù)類型,同時(shí)支持以模塊為基礎(chǔ)來(lái)構(gòu)造應(yīng)用程序。
3.1994年1月:Python 1.0正式發(fā)布。
4.2000年10月16日:Python 2.0發(fā)布,增加了完整的垃圾回收,提供了對(duì)Unicode的支持。與此同時(shí),Python的整個(gè)開發(fā)過程更加透明,社區(qū)對(duì)開發(fā)進(jìn)度的影響逐漸擴(kuò)大,生態(tài)圈開始慢慢形成。
5.2008年12月3日:Python 3.0發(fā)布,它并不完全兼容之前的Python代碼,不過因?yàn)槟壳斑€有不少公司在項(xiàng)目和運(yùn)維中使用Python 2.x版本,所以Python 3.x的很多新特性后來(lái)也被移植到Python 2.6/2.7版本中。
6.目前我們使用的Python 3.7.x的版本是在2018年發(fā)布的,Python的版本號(hào)分為三段,形如A.B.C。其中A表示大版本號(hào),一般當(dāng)整體重寫,或出現(xiàn)不向后兼容的改變時(shí),增加A;B表示功能更新,出現(xiàn)新功能時(shí)增加B;C表示小的改動(dòng)(例如:修復(fù)了某個(gè)Bug),只要有修改就增加C。如果對(duì)Python的歷史感興趣,可以閱讀名為《Python簡(jiǎn)史》的網(wǎng)絡(luò)文章。
Python的優(yōu)缺點(diǎn)
Python的優(yōu)點(diǎn)很多,簡(jiǎn)單的可以總結(jié)為以下幾點(diǎn)。
簡(jiǎn)單明了,學(xué)習(xí)曲線低,比很多編程語(yǔ)言都容易上手。
開放源代碼,擁有強(qiáng)大的社區(qū)和生態(tài)圈,尤其是在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)領(lǐng)域。
解釋型語(yǔ)言,天生具有平臺(tái)可移植性,代碼可以工作于不同的操作系統(tǒng)。
對(duì)兩種主流的編程范式(面向?qū)ο缶幊毯秃瘮?shù)式編程)都提供了支持。
代碼規(guī)范程度高,可讀性強(qiáng),適合有代碼潔癖和強(qiáng)迫癥的人群。
Python的缺點(diǎn)主要集中在以下幾點(diǎn)。
執(zhí)行效率稍低,對(duì)執(zhí)行效率要求高的部分可以由其他語(yǔ)言(如:C、C++)編寫。
代碼無(wú)法加密,但是現(xiàn)在很多公司都不銷售賣軟件而是銷售服務(wù),這個(gè)問題會(huì)被弱化。
在開發(fā)時(shí)可以選擇的框架太多(如Web框架就有100多個(gè)),有選擇的地方就有錯(cuò)誤。
Python的應(yīng)用領(lǐng)域
目前Python在Web應(yīng)用后端開發(fā)、云基礎(chǔ)設(shè)施建設(shè)、DevOps、網(wǎng)絡(luò)數(shù)據(jù)采集(爬蟲)、自動(dòng)化測(cè)試、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等領(lǐng)域都有著廣泛的應(yīng)用。
安裝Python解釋器
想要開始Python編程之旅,首先得在自己使用的計(jì)算機(jī)上安裝Python解釋器環(huán)境,下面將以安裝官方的Python解釋器為例,講解如何在不同的操作系統(tǒng)上安裝Python環(huán)境。官方的Python解釋器是用C語(yǔ)言實(shí)現(xiàn)的,也是使用最為廣泛的Python解釋器,通常稱之為CPython。除此之外,Python解釋器還有Java語(yǔ)言實(shí)現(xiàn)的Jython、C#語(yǔ)言實(shí)現(xiàn)的IronPython以及PyPy、Brython、Pyston等版本,有興趣的讀者可以自行了解。
Windows環(huán)境
可以在Python官方網(wǎng)站下載到Python的Windows安裝程序(exe文件),需要注意的是如果在Windows 7環(huán)境下安裝Python 3.x,需要先安裝Service Pack 1補(bǔ)丁包(可以通過一些工具軟件自動(dòng)安裝系統(tǒng)補(bǔ)丁的功能來(lái)安裝),安裝過程建議勾選“Add Python 3.x to PATH”(將Python 3.x添加到PATH環(huán)境變量)并選擇自定義安裝,在設(shè)置“Optional Features”界面最好將“pip”、“tcl/tk”、“Python test suite”等項(xiàng)全部勾選上。強(qiáng)烈建議選擇自定義的安裝路徑并保證路徑中沒有中文。安裝完成會(huì)看到“Setup was successful”的提示。如果稍后運(yùn)行Python程序時(shí),出現(xiàn)因?yàn)槿笔б恍﹦?dòng)態(tài)鏈接庫(kù)文件而導(dǎo)致Python解釋器無(wú)法工作的問題,可以按照下面的方法加以解決。
如果系統(tǒng)顯示api-ms-win-crt*.dll文件缺失,可以參照《api-ms-win-crt*.dll缺失原因分析和解決方法》一文講解的方法進(jìn)行處理或者直接在微軟官網(wǎng)下載Visual C++ Redistributable for Visual Studio 2015文件進(jìn)行修復(fù);如果是因?yàn)楦耊indows的DirectX之后導(dǎo)致某些動(dòng)態(tài)鏈接庫(kù)文件缺失問題,可以下載一個(gè)DirectX修復(fù)工具進(jìn)行修復(fù)。
Linux環(huán)境
Linux環(huán)境自帶了Python 2.x版本,但是如果要更新到3.x的版本,可以在Python的官方網(wǎng)站下載Python的源代碼并通過源代碼構(gòu)建安裝的方式進(jìn)行安裝,具體的步驟如下所示(以CentOS為例)。
安裝依賴庫(kù)(因?yàn)闆]有這些依賴庫(kù)可能在源代碼構(gòu)件安裝時(shí)因?yàn)槿笔У讓右蕾噹?kù)而失?。?/p>
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
下載Python源代碼并解壓縮到指定目錄。
wgethttps://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xzxz-d Python-3.7.6.tar.xztar-xvf Python-3.7.6.tar
切換至Python源代碼目錄并執(zhí)行下面的命令進(jìn)行配置和安裝。
cdPython-3.7.6./configure --prefix=/usr/local/python37 --enable-optimizationsmake && make install
修改用戶主目錄下名為.bash_profile的文件,配置PATH環(huán)境變量并使其生效。
cd~
vim.bash_profile
# ... 此處省略上面的代碼 ...export PATH=$PATH:/usr/local/python37/bin# ... 此處省略下面的代碼 ...
激活環(huán)境變量。
source.bash_profile
macOS環(huán)境
macOS也自帶了Python 2.x版本,可以通過Python的官方網(wǎng)站提供的安裝文件(pkg文件)安裝Python 3.x的版本。默認(rèn)安裝完成后,可以通過在終端執(zhí)行python命令來(lái)啟動(dòng)2.x版本的Python解釋器,啟動(dòng)3.x版本的Python解釋器需要執(zhí)行python3命令。
運(yùn)行Python程序
確認(rèn)Python的版本
可以Windows的命令行提示符中鍵入下面的命令。
python--version
在Linux或macOS系統(tǒng)的終端中鍵入下面的命令。
python3--version
當(dāng)然也可以先輸入python或python3進(jìn)入交互式環(huán)境,再執(zhí)行以下的代碼檢查Python的版本。
importsysprint(sys.version_info)print(sys.version)
編寫Python源代碼
可以用文本編輯工具(推薦使用Sublime、Visual Studio Code等高級(jí)文本編輯工具)編寫Python源代碼并用py作為后綴名保存該文件,代碼內(nèi)容如下所示。
print('hello, world!')
運(yùn)行程序
切換到源代碼所在的目錄并執(zhí)行下面的命令,看看屏幕上是否輸出了"hello, world!"。
pythonhello.py
或
python3hello.py
代碼中的注釋
注釋是編程語(yǔ)言的一個(gè)重要組成部分,用于在源代碼中解釋代碼的作用從而增強(qiáng)程序的可讀性和可維護(hù)性,當(dāng)然也可以將源代碼中不需要參與運(yùn)行的代碼段通過注釋來(lái)去掉,這一點(diǎn)在調(diào)試程序的時(shí)候經(jīng)常用到。注釋在隨源代碼進(jìn)入預(yù)處理器或編譯時(shí)會(huì)被移除,不會(huì)在目標(biāo)代碼中保留也不會(huì)影響程序的執(zhí)行結(jié)果。
單行注釋 - 以#和空格開頭的部分
多行注釋 - 三個(gè)引號(hào)開頭,三個(gè)引號(hào)結(jié)尾
"""
第一個(gè)Python程序 - hello, world!
向偉大的Dennis M. Ritchie先生致敬
Version: 0.1
Author: 駱昊
"""print('hello, world!')# print("你好, 世界!")
Python開發(fā)工具
IDLE - 自帶的集成開發(fā)工具
IDLE是安裝Python環(huán)境時(shí)自帶的集成開發(fā)工具,如下圖所示。但是由于IDLE的用戶體驗(yàn)并不是那么好所以很少在實(shí)際開發(fā)中被采用。
IPython - 更好的交互式編程工具
IPython是一種基于Python的交互式解釋器。相較于原生的Python交互式環(huán)境,IPython提供了更為強(qiáng)大的編輯和交互功能??梢酝ㄟ^Python的包管理工具pip安裝IPython,具體的操作如下所示。
pipinstall ipython
或
pip3install ipython
安裝成功后,可以通過下面的ipython命令啟動(dòng)IPython,如下圖所示。
在Python交互式環(huán)境中輸入下面的代碼并查看結(jié)果,請(qǐng)嘗試將看到的內(nèi)容翻譯成中文。?import?this
「說明」:輸入上面的代碼,在Python的交互式環(huán)境中可以看到Tim Peter撰寫的“Python之禪”,里面講述的道理不僅僅適用于Python,也適用于其他編程語(yǔ)言。
學(xué)習(xí)使用turtle在屏幕上繪制圖形。?「說明」:turtle是Python內(nèi)置的一個(gè)非常有趣的模塊,特別適合對(duì)計(jì)算機(jī)程序設(shè)計(jì)進(jìn)行初體驗(yàn)的小伙伴,它最早是Logo語(yǔ)言的一部分,Logo語(yǔ)言是Wally Feurzig和Seymour Papert在1966發(fā)明的編程語(yǔ)言。?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()
?「提示」:本章提供的代碼中還有畫國(guó)旗和畫小豬佩奇的代碼,有興趣的讀者請(qǐng)自行研究。
有不懂的小伙伴可以滴滴!