Python 是這十年最受歡迎的通用程式語言:語法接近英文、縮排就是結構、套件幾乎涵蓋所有領域。它在資料分析、人工智慧與自動化的地位無可取代,但在網頁開發領域它的角色和 PHP 很不同,這也是很多人選錯語言的原因。這篇文章從 Python 是什麼開始,整理可直接執行的基本語法,說明它在網頁開發的實際用法(Django、Flask、FastAPI)、主機門檻,以及和 PHP 的差別。本文屬於《網頁程式語言》系列,總覽見〈網頁程式設計是什麼〉。
一、Python 是什麼?
Python 是一種高階、直譯式、動態型別的通用程式語言,由 Guido van Rossum 於 1991 年發布,以可讀性為設計核心,用縮排取代大括號來表示程式區塊。它不是專為網頁設計的語言(PHP 才是),而是一把萬用工具:同一套語法可以寫網站後端、資料分析、機器學習、自動化腳本與桌面程式。
Python 的流行有兩個推力:一是教育界普遍拿它當第一門語言,二是資料科學與 AI 的主流套件(NumPy、pandas、PyTorch)都以 Python 為介面。在 Stack Overflow 開發者調查與 TIOBE 等排名中,它多年位居前列。
二、Python 的五個特點
- 語法簡潔可讀:沒有分號與大括號,程式讀起來接近文字說明,適合初學者。
- 直譯執行:不需編譯,寫完直接執行,互動式介面(REPL)方便一行一行試。
- 動態型別:變數不必宣告型別;Python 3.5 以後可加型別提示(type hints),大型專案幾乎都會用。
- 龐大的標準庫與第三方套件:PyPI 上的套件數量以數十萬計,用
pip一行安裝。 - 跨平台與開放原始碼:Windows、macOS、Linux 都能執行,由 Python 軟體基金會維護。
三、Python 基本語法
以下範例都能存成 .py 檔用 python3 檔名.py 執行。請特別注意縮排:Python 用四個空格表示區塊,混用 Tab 與空格會直接報錯。
1. 註解與縮排
# 單行註解以井字號開頭
"""
多行字串常被拿來當區塊註解,
放在函數開頭就是說明文件(docstring)。
"""
print("Hello, World!")
2. 變數與資料型別
name = "王小明" # str 字串
age = 25 # int 整數
height = 172.5 # float 浮點數
is_member = True # bool 布林值
print(f"姓名:{name},年齡:{age}") # f-string 格式化字串
print(type(height)) # <class 'float'>
f-string(在字串前加 f)是現代 Python 組合字串的標準做法,比 + 串接清楚許多。
3. 條件判斷
age = 18
if age >= 18:
print("您已成年")
elif age >= 12:
print("您是青少年")
else:
print("您是兒童")
條件後面是冒號,區塊靠縮排;elif 是 else if 的縮寫。邏輯運算用英文 and、or、not,不是符號。
4. 迴圈
for i in range(1, 6): # 1 到 5
print(f"這是第 {i} 次迴圈")
count = 0
while count < 3:
print(f"while 迴圈第 {count + 1} 次")
count += 1
for color in ["紅", "綠", "藍"]: # 直接走訪列表
print(color)
5. 函數
def greet(name: str, greeting: str = "Hello") -> str:
"""回傳問候語;greeting 有預設值。"""
return f"{greeting}, {name}!"
print(greet("Alice"))
print(greet("Bob", greeting="您好"))
範例加了型別提示與 docstring,這是團隊專案的標準寫法;型別提示不會被強制檢查,但編輯器與 mypy 等工具會用它抓錯。
6. 列表、字典與元組
colors = ["紅", "綠", "藍"] # list:可修改的有序集合
colors.append("黃")
print(colors[0], len(colors)) # 紅 4
user = {"name": "王小明", "age": 25} # dict:鍵值對
user["email"] = "ming@example.com"
print(user.get("phone", "未提供")) # 取不到時給預設值
point = (10, 20) # tuple:不可修改
x, y = point # 解包
三者的差別:list 可變有序、tuple 不可變有序、dict 以鍵取值。網頁開發中,從資料庫取回的每一筆資料通常就是 dict,一整批就是 list of dict。
四、Python 在網頁開發的用法
Python 做網站一定透過框架,很少像 PHP 那樣把程式直接嵌在 HTML 裡。三個主流框架的定位:
- Django:大而全,內建 ORM、後台、登入、表單驗證,適合功能完整的網站與內容平台。
- Flask:小而精,只提供路由與範本,其他自己挑套件,適合小型網站與教學。
- FastAPI:專為 API 設計,以型別提示自動產生文件與驗證,效能好,是近年新專案(尤其是 AI 服務的後端)最常見的選擇。
下面是 Flask 的最小範例,把「表單送出姓名、頁面顯示歡迎」這件事用 Python 做一次:
from flask import Flask, request, render_template_string
from markupsafe import escape
app = Flask(__name__)
PAGE = """
<form method="post">
姓名:<input type="text" name="name">
<button type="submit">送出</button>
</form>
{% if name %}<p>歡迎,{{ name }}!</p>{% endif %}
"""
@app.route("/", methods=["GET", "POST"])
def index():
name = request.form.get("name", "").strip() if request.method == "POST" else ""
return render_template_string(PAGE, name=escape(name))
if __name__ == "__main__":
app.run(debug=True)
兩個和 PHP 最大的差別:一、程式是一個持續執行的應用程式(app.run),不是每個網址一個檔案;二、範本引擎預設會轉義輸出,跨站腳本的防護是內建的。
五、Python 與 PHP 差在哪?
兩者都是直譯式動態語言,差別在出身與生態:PHP 為網頁而生,Python 什麼都能做、網頁只是其中一項。
- 部署:PHP 存檔即上線,任何虛擬主機都能跑;Python 需要應用伺服器常駐,主機門檻與管理責任都高一級。
- 寫法:PHP 可以直接嵌在 HTML 裡(雖然框架化後也不建議);Python 一律走框架與範本引擎。
- 生態重心:PHP 有 WordPress、WooCommerce 與最多的官網維護人選;Python 有資料科學與 AI 的完整套件鏈。
- 選擇原則:官網、部落格、中小電商選 PHP;系統核心是資料處理、機器學習或需要跟 AI 模型整合,選 Python。PHP 的完整介紹見〈PHP 是什麼〉。
六、Python 的其他應用
- 資料分析:pandas 處理表格資料、Matplotlib 繪圖,是報表自動化與商業分析的主力。
- 人工智慧與機器學習:PyTorch、TensorFlow、scikit-learn 都以 Python 為主要介面,呼叫各家大型語言模型的官方 SDK 也優先提供 Python 版。
- 自動化腳本:批次改檔名、抓取網頁、定時產生報表,幾十行就能完成。
- 爬蟲與 SEO 工具:Requests 與 BeautifulSoup 抓網頁、分析標題與連結,是 SEO 從業者最常用的自動化組合。
七、版本與現況
- Python 2 已於 2020 年 1 月終止支援:仍在跑 Python 2 的程式沒有任何安全性更新,遇到請直接規劃升級。
- Python 3 每年 10 月發一版,每版支援五年:新專案用最新的穩定版即可,各版本的支援期限以 Python 官方的版本狀態頁為準。
- 套件管理:用虛擬環境(venv)隔離每個專案的套件,避免版本互相干擾,這是 Python 新手最該先養成的習慣。
八、網站主的視角:什麼時候該選 Python
我們替客戶規劃網站技術時,會在兩種情況下建議 Python:系統的核心是資料,或是團隊已經會 Python。
- 該選 Python:網站背後要跑推薦、預測、報表分析或串接 AI 模型;公司內部已有資料工程或研究人員在用 Python;需要對外提供 API 給 App 或其他系統。
- 不必選 Python:目標只是官網、內容行銷與詢問單。這類網站用 PHP 的主機成本更低、維護人選更多,本站(newscan.com.tw)就是這樣的選擇。
- 兩者並存也很常見:官網用 PHP,資料分析與自動化用 Python 跑在後台,各取所長,不必二選一。
語言不影響搜尋排名;Django 與 Flask 產生的 HTML 對搜尋引擎而言和 PHP 產生的沒有差別,該做的技術 SEO項目也相同。
九、結論
Python 是最值得學的第一門通用語言,語法簡潔、應用最廣;但把它當網站語言時要先算主機與部署成本,並接受它一定透過框架開發。官網類專案交給 PHP,資料與 AI 類專案交給 Python,是目前最務實的分工。
學習路線建議:先用本文的基本語法寫幾個自動化小工具建立手感,再學 Flask 理解網站運作,最後依需求進 Django 或 FastAPI。前端的 HTML 與 JavaScript 仍然要會,任何後端語言都取代不了它們。
十、常見問答 FAQ
Python 是什麼?
Python 可以做網站嗎?
Python 和 PHP 哪個適合做網站?
Python 學起來難嗎?要多久?
Python 2 和 Python 3 有什麼差別?現在該用哪個?
參考來源
- Python Software Foundation,〈Python 教學(正體中文)〉,Python 官方文件。
- Python Software Foundation,〈Status of Python versions〉,Python 開發者指南。
- Pallets,〈Flask Documentation〉,Flask 官方文件。
- Django Software Foundation,〈Django documentation〉,Django 官方文件。
- 新視野網頁設計,〈PHP 是什麼?語法介紹、與 MySQL 互動、現況與適合的網站類型〉,本站自有內容。
Python 各版本支援期限以官方版本狀態頁為準;第八節為本站替客戶規劃網站技術時的實務判斷,不涉及特定客戶資料。