環境安裝
哈囉,世界!
如果有人問你,什麼是程式語言,你會怎麼回答?
也許正在閱讀本書的讀者們曾經寫過別的程式語言,但我不確定你是否想過這種超級小白的新手問題,而且還得用白話文跟完全沒寫過程式的人解釋寫程式到底是在寫什麼?
電腦程式本質上是一堆 0 跟 1 的組合,透過這些 0 跟 1 的數字或訊號可以指揮電腦做一些我們想要它完成的工作,例如數學的四則運算,或是計算圓周率到底有幾位數。不過一般人應該看不太懂這些 0 跟 1 所代表的意思,所以便有人設計出一些普通人比較容易理解像是 if...else...
這種比較接近人類語言的電腦指令。這些指令最終還是會被轉換成電腦看的懂的 0 與 1,而 if...else...
這種比較容易懂的指令就稱之程式語言的語法。目前全世界的程式語言有非常多種,各有各自的用途,不同的程式語言就只是使用不同的語法在叫電腦做事而已,而本書要介紹的程式語言 Python 也是其中一種,還是目前全世界數一數二受歡迎的那種...不對,不是數一數二,就是最受歡迎的那種。
是說,大家有沒有想過為什麼程式語言有這麼多種?為什麼大家不要統一一下,都寫同一種就好了?每種程式語言都有它的用途或想要解決的問題,就像為什麼有了一般的轎車,還要另外設計跑車、貨車、休旅車或四輪驅動的越野車,就算同樣都是休旅車,不同廠商設計的休旅車也都有功能上或效能上的差異。程式語言也是類似的概念。
而「寫程式」的過程,就是使用某些工具(通常是文字編輯軟體),把這些指令存成檔案,這些檔案就像電影的劇本,演員們基本上就是照著劇本的指示演戲,電腦也是根據你寫的這些指令來完成你想要做的工作。
因為簡單、易學且功能強大以及整個大環境的帶動,不論是初學者或是專業工程師都可以使用它來完成各種工作,Python 是目前全世界最熱門的程式語言,雖然不少人可能是近幾年才聽過這個程式語言,會以為這個程式語言很新,事實上 Python 這個程式語言自 1991 年上市到現在已經超過 30 年了。Python 這個程式語言的名字,是來自於一個英國表演團體《Monty Python》,當年 Python 的發明者正在特別喜歡這個團體演出的電視影集《Monty Python's Flying Circus》,所以就把程式語言取名叫 Python。因此雖然 Python 字面上是蟒蛇的意思,但這個程式語言跟蛇或其他爬蟲類沒什麼關係。
既然本書是要教大家怎麼撰寫 Python,第一步就是先把 Python 給安裝起來!
安裝 Python
安裝 Python 的困難度不高,基本上就是到 Python 的官方網站下載安裝程式並照著指示做就行了,目前主流的作業系統,例如 Windows、macOS 以及 Linux 都有相對應的版本。是說...如果各位使用的是 macOS 跟 Linux 作業系統,可能會發現原本電腦裡就已經直接內建 Python 了,這樣還需要另外安裝嗎?系統內建安裝的 Python 通常會比現行版本稍微舊一點,如果單純就以體驗或寫一些簡單的 Python 程式的話是夠用的。之所以在作業系統內建安裝 Python 是有原因的,可能有些系統程式剛好有用到 Python。Python 的版本從早期的 2.x 版到現在的 3.x 版,除了正宗的 CPython 之外,還有其他分支的實作品版本(像是 Jython、IronPython、PyPy 等),如果不想把自己的電腦環境弄的亂七八糟,或是因為專案需要常常安裝不同版本的 Python,通常我會建議另外使用版本管理工具來建構隔離的開發環境,這裡我將使用 pyenv
做為範例。
因為 Python 這個程式本身主要是用 C 語言所設計出來的,所以如果沒有特別聲明的話,平常大家在講的 Python 通常指的就是 CPython。
另外,這裡需要再特別說明一下,pyenv
本身並不是 Python,安裝 pyenv
不等於安裝 Python。你可以把 pyenv
想像成一個工具箱,在這個工具箱裡會可以放很多種工具,但這個工具箱裡如果沒有任何工具它就只是個空的盒子而已。pyenv
不只是個工具箱,還是有分隔板的工具箱,不同版本的 Python 會被安裝在不同的隔板裡,安裝套件的時候也會安裝在各自的隔板裡,透過 pyenv
就能做到簡單的切換 Python 的版本。
再次提醒,如果你的作業系統(例如 macOS)原本就有預先安裝 Python 的話,即使透過 pyenv
安裝了其他版本的 Python,原本系統內建的 Python 也建議不要移除,它存在系統裡一定是有原因的,你不會知道系統裡有哪些程式正在使用它。
安裝 pyenv
安裝 pyenv 的方式滿簡單的,只要到 GitHub 的說明頁面,照著指示複製貼上應該一下子就能安裝完成。如果是 Windows 作業系統則是另外安裝 pyenv-win
:
- pyenv https://github.com/pyenv/pyenv
- pyenv-win https://github.com/pyenv-win/pyenv-win
pyenv 使用簡介
安裝 pyenv
之後,我們來看幾個常用的操作。首先,可以透過 -v
或 --version
選項得知目前 pyenv
的版本:
$ pyenv -v
pyenv 2.4.0
各位的版本不一定會跟我一樣,但只要版本號沒有差太多,功能上應該不會差太多。再提醒一次,這個並不是 Python 的版本喔,這只是 pyenv
這個工具箱本身的版本。如果想要知道目前 pyenv
這個工具箱裡有安裝了哪些工具,可以這樣做:
$ pyenv versions
* system (set by /Users/kaochenlong/.pyenv/version)
大家執行的結果可能會跟我的不一樣,上面的結果顯示目前我的 pyenv
工具箱裡只有系統內建(就是那個 system
字樣)的 Python 而已。如果想要知道現在 pyenv
有支援哪些種類的 Python,可以這樣做:
$ pyenv install --list
Available versions:
2.1.3
2.2.3
...略...
3.12.2
3.12.3
3.12.4
3.13.0b2
3.13-dev
...略...
stackless-3.7.5
這個指令會顯示一個很長的列表,上面有各式各樣的 Python,而且各種版本都有。前面沒有別的名字只有數字的,例如 2.1.3
或是 3.12.4
,這指的就是正宗版的 Python,也就是 CPython。在本書撰寫的當下,現行的 CPython 版本最新的是 3.12.4
。
之前要安裝 Python,可能是得先到官網下載安裝檔,然後一路點下一步,現在我們有 pyenv
這個工具箱了,我們可以直接請它幫我們搞定安裝 Python 的事,只要一行指令就能搞定:
$ pyenv install 3.12.4
這裡的 3.12.4
就是在上個指令所顯示的版本列表。順利的話,等個幾分鐘應該就裝起來了。安裝完成之後再看一次版本:
$ pyenv versions
* system (set by /Users/kaochenlong/.pyenv/version)
3.12.4
這樣就多了一個 3.12.4
版本。前面的 *
符號表示現在正在使用哪個版本,如果要切換到剛剛安裝的 3.12.4
的話:
$ pyenv shell 3.12.4
再看一次版本:
$ pyenv versions
system
* 3.12.4 (set by /Users/kaochenlong/.pyenv/version)
*
符號就移到 3.12.4
了。雖然目前看起來沒問題,不過如果你把終端機關掉再重新開啟之後,pyenv
會忘記你剛剛設定的 Python 版本,可能又跳回原本系統內建的版本了。為了避免每次都得這樣手動切換,我通常會這樣做:
$ pyenv global 3.12.4
這樣等於把系統預設的 Python 版本設定為 3.12.4
。這樣之後在終端機輸入 python
或是待會會介紹到的套件安裝工具 pip
的時候,就會找到這個透過 pyenv
安裝的版本,而不是原本系統內建安裝的那個版本了。
開發工具
要開始寫 Python 程式,其實只要有一個文字編輯器就行了。
目前業界有不少功能很厲害的「整合開發工具(Integrated Development Environment, IDE)」,通常 IDE 有很多便利的功能,像是偵錯、程式碼自動完成、版本控制等等。在業界比較知名也比較多人使用的應該就是 PyCharm 了。IDE 通常是由商業公司所開發,所以通常是收費軟體,但 PyCharm 有提供免費的 Community 版本,如果有 學生身份到網站上申請還能免費使用全套 IDE,真的是太佛心了。
本書會把重點放在 Python 這個程式語言而不是在的開發工具上,只要學會 Python 之後,不管是 IDE 或是文字編輯軟體都可以用來撰寫 Python 程式。以新手上路來說,我會推薦大家使用 Visual Studio Code(通常簡稱 VSCode)這款文字編輯器。VSCode 不只免費,本身的功能也很完整,再搭配幾款 Python 專屬的擴充套件,用來寫 Python 的體驗還滿好的。安裝 VSCode 的方式很簡單,也是只要到它的官方網站下載合適的版本並安裝就行了。
- Visual Studio Code https://code.visualstudio.com/
- PyCharm https://www.jetbrains.com/pycharm/