Home
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try a Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

4

Local AI

--

Uedu Code

--

Taipei AQI 46 · Taichung AQI 76 · Tainan AQI 67 · Kaohsiung AQI 64
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 01

Python 簡介與開發環境

Python 的歷史與特色、互動式 Shell 與程式檔
Interaction實作導覽 15 minute(s)

Learning Objectives

  • 介紹 Python 語言:由來、特性、應用領域,以及 Python 2 與 Python 3 的差異
  • 安裝 Python 軟體,並用 pip 安裝與移除套件、建立虛擬環境
  • 使用 Python 互動式執行環境(Shell),並分辨它和執行 .py 程式檔的差別
  • 認識 IDLE、Jupyter 與 VS Code 等開發工具,以及 Python 的程式撰寫風格

什麼是 Python

Python 由荷蘭的 Guido van Rossum 在 1991 年發表,名字取自英國喜劇團體 Monty Python(蒙提·派森), 不是那條蟒蛇。經過三十多年,它成為全世界最受歡迎的程式語言之一,在 TIOBE 程式語言排行榜上長期名列前茅。

Python 的特性

  • 語法簡單、可讀性高:程式碼接近英文,比 C/C++、Java 少很多格式上的規定,容易學也容易記
  • 開放原始碼、跨平台:Windows、macOS、Linux 都能執行,屬於通用型(general purpose)的高階語言
  • 直譯式、有互動式環境:可以當作腳本語言(scripting language)快速試驗,輸入一行馬上看到結果
  • 標準函式庫豐富、社群活躍:PyPI(pypi.org)上有數十萬個第三方套件
  • 黏合語言(glue language):容易和其他語言寫成的程式互相搭配

Google、YouTube、Dropbox、NASA 都大量使用 Python;Google 工程師有一句話: 「能用 Python 的地方就用 Python,必須用 C++ 的地方才用 C++。」

常見的應用:遊戲、圖形介面(GUI)、網站後端(Flask、Django)、資料庫連結、資料分析、人工智慧、網路爬蟲。

Python 2 與 Python 3

Python 3.0 在 2008 年發表,刻意不向前相容 Python 2,修掉了許多早期的設計問題。 Python 2 的最後一版 2.7 已在 2020 年 1 月 1 日結束支援,現在請一律使用 Python 3。 在網路上看到舊程式碼時,可以從這兩個地方分辨:

Python 2 Python 3
印出文字 print "hello"(敘述) print("hello")(函數,要加括號)
整數相除 7 / 2 得到 3 7 / 2 得到 3.5;要捨去小數用 7 // 2

本軌道的所有範例都使用 Python 3。

安裝 Python 並開啟互動式 Shell

以 Windows 為例(macOS 到 python.org 下載安裝檔;Ubuntu 用 sudo apt install python3)。安裝時最重要的一步是勾選 Add python.exe to PATH,之後才能在終端機直接打 python。

  1. 1

    下載並安裝

    到 python.org 的 Downloads 頁面下載 Windows 安裝程式(建議 64 位元版),執行後:

    1. 勾選畫面下方的 Add python.exe to PATH
    2. 按 Install Now(想自訂安裝位置可以選 Customize installation)
    3. 看到 Setup was successful 後按 Close

    想一次裝好資料科學常用套件,也可以改裝 Anaconda;兩者擇一即可。

  2. 2

    確認安裝成功

    開啟「命令提示字元」(按 Windows 鍵輸入 cmd),輸入 python --version。如果出現「找不到命令」,通常是安裝時沒有勾選 PATH,重新執行安裝程式選 Modify 補勾即可。

  3. 3

    進入互動式 Shell(REPL)

    只輸入 python 就會進入互動式執行環境,看到 >>> 提示字元後,輸入一行就馬上執行、顯示結果。在 Shell 裡,只輸入一個運算式(例如 36)也會顯示它的值;exit() 離開。

  4. 4

    使用 IDLE

    IDLE 是 Python 官方附的整合開發與學習環境(Integrated Development and Learning Environment),從開始功能表選「IDLE (Python 3.x)」開啟。它有一個 Shell 視窗,也可以用「File → Open」開啟 .py 檔,按 F5(Run Module)執行,結果會顯示在 Shell 視窗。IDLE 會依語法替程式碼上色、自動縮排,還有逐步除錯功能。

這段導覽完成了

互動式 Shell 與程式檔

Python 有兩種執行方式:

互動式 Shell(REPL) 程式檔(script)
怎麼開始 終端機輸入 python 把程式存成 xxx.py,輸入 python xxx.py
適合 試一小段語法、當計算機 寫完整的程式、可以存檔重複執行
只寫一個運算式 會顯示結果 不會顯示,要用 print()

REPL 是 Read(讀入)、Eval(求值)、Print(印出)、Loop(重複)的縮寫:Shell 每讀一行就自動把結果印出來。 程式檔沒有這個「自動印出」,所以要看結果一定要 print()。CodeLab 的範例都是程式檔,接下來用逐步播放看看。

執行 .py 程式檔

用任何文字編輯器(VS Code、記事本、IDLE)把程式存成 ex1_1.py,再回到終端機執行它。

  1. 1

    切換到程式所在的資料夾

    cd 切換資料夾;Windows 用 dir(macOS、Linux 用 ls)確認檔案在這裡。

  2. 2

    用 python 指令執行

    python 檔名.py 會從第一行開始依序執行到最後一行,print() 的內容顯示在終端機。程式執行完,自動回到終端機的提示字元。

這段導覽完成了

第一支程式檔:一行一行依序執行

這是 ex1_1.py 的擴充版。按 ▶ 播放,注意執行箭頭由上往下一次走一行,每遇到 print() 輸出區就多一行。看完後試著改成 print(33 // 4),按「再跑一次」比較結果。

程式檔不會自動印出運算式

第 2 行和第 6 行在互動式 Shell 會顯示結果,但在程式檔裡執行了卻什麼都沒印。數數看輸出區最後有幾行,再對照哪幾行有 print()。

Python 的風格:簡潔與縮排

同樣是印出 Line 2: I am Python!,Java 需要宣告類別、main 方法和型別;Python 兩行就完成。Python 還用縮排標示哪些程式屬於同一個區塊(迴圈會在 Module 08 詳細介紹)。看看第 7 行重複執行了幾次。

用 pip 安裝套件與建立虛擬環境

pip 是 Python 的套件管理工具,從 PyPI 下載第三方套件。不同專案需要的套件版本可能衝突,所以建議每個專案建立自己的虛擬環境(virtual environment),套件只裝在這個環境裡。

  1. 1

    建立並啟動虛擬環境

    python -m venv .venv 在目前資料夾建立名為 .venv 的虛擬環境(會複製一份 Python 直譯器進來)。啟動後,提示字元前面出現 (.venv),表示已經在虛擬環境裡。macOS、Linux 的啟動指令是 source .venv/bin/activate。

  2. 2

    安裝套件:pip install

    pip install 套件名稱,例如 NumPy。pip 會連同它需要的其他套件一起安裝。

  3. 3

    查詢已安裝的套件:pip freeze

    pip freeze 列出目前環境裡的套件與版本。常把結果存成 requirements.txt,別人就能用 pip install -r requirements.txt 裝出相同的環境。

  4. 4

    移除套件與離開虛擬環境

    pip uninstall 套件名稱 移除套件(加 -y 跳過確認);deactivate 離開虛擬環境。在 Jupyter 的程式格裡,指令前加驚嘆號也能執行,例如 !pip install numpy。

這段導覽完成了

其他開發工具

工具 特色 怎麼開始
JupyterLab 在瀏覽器裡一格一格執行程式、穿插文字說明與圖表,適合資料分析與做筆記 pip install jupyterlab,再輸入 jupyter lab;結束時在終端機按 Ctrl + C
Visual Studio Code 免費、跨平台的編輯器,支援語法上色、自動完成、除錯與 Git 到 code.visualstudio.com 下載;按 Ctrl + Shift + X 搜尋並安裝 Python 擴充功能,在右下角選擇要使用的 Python 直譯器
Spyder、PyCharm 偏向科學計算或大型專案的整合開發環境 依需要選用,不是必要

JupyterLab 是 Jupyter Notebook 的下一代介面;JupyterHub 則是讓多人在同一台伺服器上使用 Jupyter 的版本。

Python 的禪:import this

在互動式 Shell 輸入 import this,會印出 Tim Peters 在 1999 年寫的〈Python 之禪〉(PEP 20), 它是 Python 社群寫程式的價值觀。開頭幾句是:

Beautiful is better than ugly.(優美勝於醜陋) Explicit is better than implicit.(明確勝於晦澀) Simple is better than complex.(簡單勝於複雜) Complex is better than complicated.(複雜勝於繁複) Flat is better than nested.(平坦勝於巢狀) Sparse is better than dense.(分散勝於密集) Readability counts.(可讀性很重要)

具體的撰寫規範寫在 PEP 8(Python 程式風格指南),例如縮排用 4 個空白、變數名稱用小寫加底線。 遇到問題時,官方文件 docs.python.org 和其中的 The Python Tutorial 是最可靠的參考。

想一想:Python 與執行環境

1.

在 Python 3 中,下面的程式會印出什麼?

print(7 / 2)
print(7 // 2)
2.

把下面的程式存成 demo.py,再執行 python demo.py,終端機會顯示什麼?

10 + 5
print("done")
3.

下面哪一個是 Python 3 正確的寫法?

第 1 次作答

想一想:套件與工具

1.

想在目前的 Python 環境裡安裝 pandas,要在終端機輸入哪個指令?

2.

為什麼建議每個專案建立自己的虛擬環境?

第 1 次作答

實作:第一支程式

補完 TODO,讓程式依序印出三行:Hello, Python!、36 除以 5 的結果、36 整除 5 的結果。記得程式檔要用 print() 才看得到結果。

你的輸出
預期輸出

重點精華回顧

  • Python 由 Guido van Rossum 在 1991 年發表;語法簡潔、可讀性高、開放原始碼、跨平台、套件豐富。
  • 一律使用 Python 3:print() 是函數,/ 得到浮點數,// 是整數除法。
  • 安裝時勾選 Add python.exe to PATH,用 python --version 確認。
  • 互動式 Shell(python、>>>)適合快速試驗,會自動顯示運算式的值;程式檔(python xxx.py)要用 print() 才看得到結果。
  • pip install/pip uninstall/pip freeze 管理套件;每個專案用 python -m venv 建立虛擬環境。
  • 開發工具:IDLE、JupyterLab、VS Code;撰寫風格參考 PEP 8 與〈Python 之禪〉,善用官方文件與教學。
這一課完成了!
Next lesson:變數與基本數學運算
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。