基石為勤能補拙的迷宮之旅——第二天(編程語言介紹、Python解釋器介紹與安裝、執(zhí)行Python程序的方式和變量)

一、編程語言介紹

1.1 機器語言

直接用計算機能理解的二進(jìn)制指令編寫程序,直接控制硬件

1.2 匯編語言

用英文標(biāo)簽取代二進(jìn)制指令取編寫程序,本質(zhì)也是在直接控制硬件

1.3 高級語言

用人能理解的表達(dá)方式去編寫程序,無需考慮硬件的操作細(xì)節(jié)

?????? 編譯型:類似于谷歌翻譯,運行編譯型語言是相對于解釋型語言存在的,編譯型語言的首先將源代碼編譯生成機器語言,再由機器運行機器碼二進(jìn)制)。程序在執(zhí)行之前需要一個專門的編譯過程,把程序編譯成為機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結(jié)果就行了。程序執(zhí)行效率高,依賴編譯器,跨平臺性差些。如C、C++、Delphi等都是編譯型語言。

?????? 解釋型:類似于同聲傳譯,相對于編譯型語言存在的,源代碼不是直接翻譯成機器語言,而是先翻譯成中間代碼,再由解釋器對中間代碼進(jìn)行解釋運行。程序不需要編譯,程序在運行時才翻譯成機器語言,每執(zhí)行一次都要翻譯一次,因此效率比較低,依賴解釋器,跨平臺性好。比如Python/JavaScript / Perl/Shell等都是解釋型語言。

1.4 不同語言的比較

執(zhí)行效率:機器語言 > 匯編語言 > 高級語言(編譯型 > 解釋型)

開發(fā)效率:機器語言 < 匯編語言 < 高級語言(編譯型 < 解釋型)

跨平臺性:機器語言 < 匯編語言 < 高級語言(編譯型 < 解釋型)

二、Python解釋器介紹

當(dāng)我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執(zhí)行.py文件

Python解釋器的種類

CPython:由C語言開發(fā),是使用最廣的Python解釋器。

IPython:基于CPython之上的一個交互式解釋器,在交互方式上有所增強,但是執(zhí)行Python代碼的功能和CPython是完全一樣的。

PyPy:PyPy是另一個Python解釋器,它的目標(biāo)是執(zhí)行速度。PyPy采用JIT技術(shù),對Python代碼進(jìn)行動態(tài)編譯(注意不是解釋),所以可以顯著提高Python代碼的執(zhí)行速度。

Jython:Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行。

IronPython:IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節(jié)碼。

三、安裝Python解釋器

我們在Python官網(wǎng)下載的官方解釋器就是CPython。早在2008年P(guān)ython3就推出,但由于其不向下兼容Python2,很多公司拒絕升級,時至今日,仍然有很多運行的項目由Python2寫成,所以多版本共存是我們當(dāng)前必需的。下面我將介紹一下如何實現(xiàn)Python多版本共存。

博主是Windows操作系統(tǒng),就以Windows版本Python2的安裝進(jìn)行演示。

首先我們先進(jìn)入Python官網(wǎng),點擊Download根據(jù)你自己的電腦操作系統(tǒng)選擇相對應(yīng)的Python版本下載

點擊下載即可,下載完成后我們開始安裝。


Install for all users,所有用戶皆可使用,點擊Next。


默認(rèn)安裝路徑是C盤,但是C盤一般是系統(tǒng)盤,所以我們安裝到D盤。


這里 Add python.exe to Path 默認(rèn)是關(guān)閉的,意為將python.exe加入環(huán)境變量,這里博主保持默認(rèn),以便在后面講解添加環(huán)境變量的方法,點擊Next。


這樣就Python2的解釋器就安裝完成,那我們該如何檢測有沒有安裝成功呢?Win鍵+R鍵,輸入cmd,進(jìn)入控制臺,輸入指令D: 回車(進(jìn)入D盤),cd D:\python27 回車(進(jìn)入你解釋器的文件夾),python 回車。如果你出現(xiàn)下圖一樣的提示,恭喜你安裝成功。

這樣每一次進(jìn)入python2的交互環(huán)境是不是很麻煩?這就要引申出環(huán)境變量這個問題,將安裝路徑加入環(huán)境變量,我們直接輸入你需要運行的程序(python2)就可進(jìn)入交互界面。

右鍵此電腦找到高級系統(tǒng)設(shè)置,單擊進(jìn)入后找到環(huán)境變量 ,在系統(tǒng)變量中找到Path,雙擊進(jìn)入編輯,將python2的安裝路徑加入,同時將pip的路徑加入(可安裝第三方庫),完成后一路確定即可。


這時我們直接輸入python就可進(jìn)入交互。


至此,python2解釋器的安裝完美完成。那么怎么實現(xiàn)Python多版本的共存呢?首先我們要先安裝Python3解釋器,方法流程同Python2解釋器的安裝幾乎沒有差別,當(dāng)然你可以在安裝時直接將其加入環(huán)境變量。安裝完成后,我們需要玩點小把戲,我們將Python27下的程序復(fù)制一個,重新命名為python2,同理python37的復(fù)制后命名為python3。


之后進(jìn)入控制臺分別輸入python2和python3,如果看到下圖,恭喜你多版本共存達(dá)成。


四、執(zhí)行Python程序的兩種方式

1. 交互式:即時得到命令的執(zhí)行結(jié)果,通常用來調(diào)試代碼

2.命令行:python3 D:\test.txt

??????? ??? 2.1 注意:后綴名并不影響程序的執(zhí)行,但是約定俗成是.py結(jié)尾

? ? ? ? ? ? 2.2 運行python程序經(jīng)歷3個階段

????????????????????? 先啟動python解釋器

????????????????????? python解釋器將test.txt文件的內(nèi)容當(dāng)成文本內(nèi)容讀入內(nèi)存(此時的python解釋器就像是一個文本編輯器)

? ? ? ? ? ? ? ? ? ? ? ?python解釋器解釋執(zhí)行剛剛讀入的內(nèi)存代碼

五、變量

1. 什么是變量

?????? 量指的是記錄事物的狀態(tài)

? ? ? ?變指的是事物的狀態(tài)是可以改變的

2.為何要用變量

??????? 為了讓計算機具備人記憶事物狀態(tài)的技能

3.如何用變量

??????? 3.1 先定義

?????????????? 定義三大組成部分:


????????????????????? 變量名answer(標(biāo)識符):變量名應(yīng)該能反映出事物的屬性

????????????????????? 賦值符=:把變量值綁定給變量名

????????????????????? 變量值:就是事物的狀態(tài)

??????? 3.2 后引用

????????????????????? 通過變量名引用值

????????????????????? 變量名是訪問到值的唯一方式

??????? 3.3 變量名的命名

?????????????? 大前提:變量名應(yīng)該見名知意

?????????????? 語法規(guī)定:

????????????????????? 1.變量名由字母、數(shù)字、下劃線組成

????????????????????? 2.不能以數(shù)字開頭

????????????????????? 3.不能使用python的關(guān)鍵字

????????????????????? ['and','as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else','except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in','is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try','while', 'with', 'yield']

?????????????? 命名風(fēng)格:

????????????????????? 純小寫加下劃線(在python中,變量名的命名推薦使用該方式)

???????????????????????????? age_of_oldboy=73

????????????????????? 駝峰體(類命名推薦此方法)

???????????????????????????? AgeOfOldboy=73

??????? 3.4 常量

?????????????? AGE_OF_OLDBOY=83? 全部大寫

??????? 3.5 變量值具備兩種特征

?????????????? id:是變量值在內(nèi)存中的唯一標(biāo)識(根據(jù)內(nèi)存地址計算而來,內(nèi)存地址不同則id不同,內(nèi)存地址相同則id相同)

?????????????? type:不同類型的值用來記錄不同的狀態(tài)

??????? 3.6 內(nèi)存管理

?????????????? 垃圾回收機制:引用計數(shù)

????????????????????? 引用計數(shù)增加

???????????????????????????? age=18? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 18的引用計數(shù)為1

???????????????????????????? x=age? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 18的引用計數(shù)為2

????????????????????? 引用計數(shù)減少

???????????????????????????? delage? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 18的引用計數(shù)減為1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? x = 10? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 18的引用計數(shù)減為0,此時18被回收。

??????????????????????????? 若沒有del age這一步,x = 10? ? ? ? ? ? ? ? ? #18的引用計數(shù)減為1,此時age = 18。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容