3.python程式設計與計算機的關係,如何執行python檔案

阿菌要努力發表於2021-08-09

上一節預告了這一章想講如何不停地和世界打招呼,這涉及到程式設計中一個重要的概念:迴圈。

但經過了兩週斷更後細想了一下,不行,我們得對上一章進行補充。

我們覺得學程式設計的時候不能太固化,得多學一些擴充套件性的東西,這樣有助於觸類旁通。

所以就儘可能多講當初阿菌自己學習程式設計的時候想了解的東西,比如這章會介紹一下我們寫程式碼和計算機執行程式碼之間的關係。

上一集我們講了如何下載python和編輯工具vscode。

安裝python很好理解,畢竟安裝了python,才能使用python;而編輯工具,大家可以隨意選用。

當時阿菌學的時候,就不太瞭解上面那句,什麼叫“編輯工具可以隨意用”?

沒有騙大家,當年呆頭呆腦的阿菌一直以為,只有用老師指定的軟體,才能寫程式碼......

這樣,我們先從一個大的角度解釋一下我們表面寫的python程式碼,背後實際都是些什麼東西。

首先我們要知道,寫程式碼,就是讓電腦,按照我們編寫的指令(軟體)去幹活。

我們的電腦,它由各種各樣的部件組成,比如記憶體呀,顯示器什麼的,這些東西,它們自己是不會工作的,我們也需要寫指令(軟體)讓它們協同工作起來。

讓各種電腦部件協同工作起來的指令(軟體),我們把它叫作業系統。

沒錯,作業系統也是一個軟體,只不過,它是一個很大型的軟體。想成為世界首富麼?想的話可以考慮學習蓋茨,開發一套像 Windows 這樣全世界都用的作業系統,當全世界人民都用你的作業系統時,就能當首富啦。

當然這只是開玩笑啦,畢竟不是每個人都是天選之子。想要顛覆前輩創墊下的格局,得有兩把刷子,比如說像賈伯斯老爺子,開發一套更炫酷的蘋果作業系統。

不過,大家一定要明白,程式語言的學習,和作業系統是無關的。

重要的概念要再說一遍哈,我們只是編寫指令讓電腦為我們工作。比如說,我們現在學習 python 語言,寫的是python 指令。不知道大家還記不記得,上一節課裡,我們在正式學習python之前,是需要到 python 官網下載安裝 python 的(確切點說應該是安裝一個python直譯器),不知道大家有沒有思考過為什麼要安裝這個東西?

想問題要多從反面想。如果不安裝 python 軟體(直譯器)會怎樣?

不安裝 python 直接面臨的問題是:我們寫的 python 程式碼,作業系統它看不懂。因為每個作業系統的指令集都不一樣。

看不懂自然就沒辦法執行。

作業系統不執行,我們的機器就不能響應我們的指令。

所以我們要去下載安裝一個對應自己作業系統的軟體包,這個軟體包裡面有 python 直譯器,它能夠將我們的 python 程式碼,轉化成我們對應作業系統能執行的程式碼,這樣機器才能響應我們的程式碼。

現在大家明白,為什麼我們到官網下載軟體的時候,Windows 的下載 Windows 版本的安裝包,Mac 下載 Mac 版本的安裝包了吧?

停!肯定有好奇寶寶會問:

為啥我們不直接寫機器能看懂的程式碼呢?

大家可以看看上面的圖,程式語言很好懂的,見名知意。比如print是列印輸出的意思,我們想要輸出Hello World,直接呼叫print就行了。而機器能看懂的語言,可就複雜多了,阿菌這裡給出的是彙編程式碼,再深入一點可就是 0101 的機器碼了,那個可不是我們能手寫的。

回到正題,我們下載了相應系統版本的安裝包,比如我的是 Mac 系統,這樣 Mac 版的 python 包就能把我的 python 程式碼轉化成 Mac 作業系統對應的執行指令。這樣一來,我的 python 程式碼就能控制我的 mac 系統了!

其他作業系統也是一樣的道理。

估計會有好奇寶寶問:這個轉化的過程是怎麼樣的?

這貌似又能更新一個專題了,不過,這個可能會枯燥很多,這門課大概叫編譯原理。初學的話,建議大家先別深入這個,要不然很快就勸退了,可以考慮先跟著阿菌的教程,打點基礎,做點小專案,逐步培養信心,等基礎和知識面廣了之後,很多東西會輕鬆很多的。

好啦,現在大家知道我們說的寫程式碼是個什麼概念了,接下來回顧一下,我們上一節寫的第一行程式碼:

print("Hello world!")

對了,大家要記得寫程式碼時一定要切換到英文模式寫,中文格式下的括號呀,雙引號呀什麼的是不能被識別的。

這行程式碼的結構是怎樣的我們先不管,上節課我們演示的是,在 vscode 這個程式碼編輯工具裡,點一下右上角的小播放號就能執行:

這個檔案,當初我是儲存在桌面一個叫python-study的資料夾裡的,現在我們回答這篇文章開頭提到的問題:

什麼叫“編輯工具”可以隨意使用?

上一期裡,有小夥伴提出可以不用 vscode,使用別的工具。確實,有很多比 vscode 好用的工具,大家以後可以隨心選擇。

阿菌當初時的這個疑惑,就是受限於:老師用了什麼軟體寫程式碼,偶就用什麼軟體跟著敲,沒有搞明白自己究竟在做什麼東西。

當時期望的就是有人能講講上面的內容,這樣點一點就能把寫程式碼和計算機的關係串起來了。

有了這些鋪墊之後,我們嘗試進入我們的工作目錄,也就是當初建立在桌面的資料夾python-study,當然,這個資料夾的名字大家可以隨便起(建議取英文名字,要不然以後有點點可能會在不留意的地方帶來一些小錯誤),自己記得就好啦。

我們建立一個.txt檔案,取名叫helloworld2,系統會預設給我們建立一個帶.txt字尾的文字檔案(當然檔案的名字也可以隨便取,最好用英文哈):

然後我們開啟這個檔案,在裡面寫入我們向世界打招的程式碼:hello world!

阿菌的教程用 Windows ,這樣群眾基礎會更廣泛一些。

寫完後記得ctrl + s儲存,然後再退出哈!

然後我們回到python-study目錄:

由於我們的資料夾裡面寫了字元,所以檔案的大小不再為0了。

接下來我們按F2,重新命名檔案,把helloworld2.txt,改成helloworld2.py

他會提示我們可能會導致檔案不可用,問我們是否確定更改,我們點選是。

這個小環節估計能有助於大家理解:什麼叫“編輯工具”可以隨意使用?

Windows 建立的文字檔案預設是 .txt結尾的檔案,這個可以用Windows自帶的文字編輯工具開啟,這個文字編輯工具,也可以是程式碼編輯工具。

我們只要有一個工具,提供一個視窗,讓我們把我們想寫的字元輸入到檔案裡就行了。

至於檔案末尾的字尾名,管他呢,我們寫的是一個python指令碼,這個我們自己知道就行,不需要管電腦的提示,是我們讓電腦幹活。

然後我們在電腦左下角的搜尋框中搜尋cmd,開啟命令提示符視窗(Mac叫終端),我們可以通過這個黑視窗操作我們的作業系統。

然後輸入指令cd Desktop,輸入後按回車:

可以看到,我們游標前面的路徑多了一個Desktop的標籤,意味著我們進入了這個目錄。

然後,我們輸入cd python-study進入工作目錄:

接著,我們輸入指令dir,檢視一下工作目錄下有哪些檔案或資料夾(在之前的目錄中也可以嘗試用cls檢視一下):

可以看到我們已經編輯好的兩個程式碼檔案,接下來我們用 python 指令去執行我們的 helloworld2.py,我們輸入python helloworld2.py(一些操作細節請看視訊,mac 和 windows 通用的):

可以看到我們的 python 程式碼被作業系統執行了,同樣向世界打了個招呼。

現在大家能明白,程式碼檔案,編輯工具,作業系統之間的關係了吧?

我們回到 vscode,我們剛剛不是向世界打過一次招呼了麼,vscode 下方也有一個命令列:

我們不妨把上面的步驟再重複一遍,輸入指令cd Desktop/python-study,cd 是進入某個資料夾的意思,我們當前在liuyj目錄,也就是阿菌自己的使用者根目錄下,大家可以在根目錄下用dir指令檢視一下的,能看到 Desktop 這個表示桌面的目錄,然後再次執行helloworld2.py

同樣是向世界打了個招呼!

大家再留意一下上面那串很長的黃色字元,在第二節教程中,我們點了vscode右上角的小播放號後,就執行了這行指令,這行指令的結構其實也是python xxx

只不過它把python執行檔案具體在作業系統的那個位置全寫出來了。

肯定會有好奇寶寶接著問:咦?為什麼這個按鍵背後的指令要寫這麼仔細的路徑,而我們只需要敲一個單詞python就可以了呢?

這就涉及到一個知識點,叫環境變數。

我們想要執行python指令碼,需要找到C:/Users/liuyj/AppData/Local/Programs/Python/Python37/python.exe這個可執行檔案。

每次我們輸入:python xxx的時候,實際上系統會幫助我們去磁碟上找到上面的可執行檔案。

這個可執行檔案的路徑,python在安裝時就幫我們配好了。

想起當年學java的時候,第一步就是要配這個東西。

不知道小夥伴們會不會有一種衝動:或許我也可以參照vscode寫一個最簡單的程式碼編輯器呢!就一個框框,右上角加一個執行按鈕。

雖然實現起來會有很多複雜的細節,但我們也不妨思考一下的,比如阿菌會這樣想:首先我們得創造出一個視窗,這個視窗的實現不需要我們寫的,不管是python還是java,都有相應的圖形介面功能。所以,這個小功能的關鍵點在於執行按鈕。

或許可以這樣:我們先讀取系統變數的配置,然後獲得python可執行檔案的路徑,接著把編輯框的內容寫到一個python檔案裡(如果是開啟已有檔案就不需要了),然後執行指令就可以了。

好啦,第三章到這裡就結束啦,感謝大家的支援。

1.關於Python學習的誤區、python的優缺點、前景

2.python的下載與安裝,和世界打個招呼

相關文章