Vibe Coder
變數、型別、資料結構:dict、list、None 看懂就懂一半
變數、型別、資料結構:dict、list、None 看懂就懂一半
API 回傳的數字常常其實是字串,直接拿去計算就會出錯;而 AI 幾乎所有輸出的資料,格式都是 dict 和 list。看懂變數、型別和這兩種資料結構,就等於看懂了 AI 程式碼的八成。
你將學到什麼
變數是什麼
用一個盒子的比喻搞懂 Python 怎麼存放資料。
四種基本型別
str、int、float、bool 分別長什麼樣,各自的常見陷阱。
list 與 dict 怎麼取值
索引從零開始,key 取值分兩種安全等級,一次搞懂。
None 的隱藏炸彈
AI 最常忘記處理的空值,看到這些訊號要提高警覺。
為什麼 Vibe Coder 需要懂變數與型別
型別錯誤是最常見的 bug,API 回傳的數字常常是字串,直接拿去計算就會出錯,看得懂型別才能判斷 AI 有沒有轉換正確。dict 和 list 是 AI 幾乎所有輸出的標準格式,看懂它們等於看懂一半的程式。而 None 是最常見的隱藏炸彈,AI 常常沒有處理找不到資料的情況,一旦下一行直接取值就會爆炸。
變數:暫時存放資料的盒子
變數就是暫時存放資料的盒子,用等號把值放進去,之後用變數名稱把它取出來。
name = "Joan"
age = 30
is_active = True
data = None
print(name)
print(age + 1)
四種基本型別,各自的陷阱
| 型別 | 長什麼樣 | 常見陷阱 |
|---|---|---|
| 字串 str | 雙引號或單引號包起來的文字 | API 回傳的數字常常是字串,要轉換才能計算 |
| 整數 int | 沒有小數點的數字 | 字串和整數不能直接相加,會直接出錯 |
| 浮點數 float | 有小數點的數字 | 浮點數計算有精度問題,兩個小數相加不一定等於預期值 |
| 布林值 bool | True 或 False | 首字母要大寫,小寫會出現變數未定義的錯誤 |
print(type(x)) 印出來看,就能知道,例如可以知道 API 回傳的到底是 dict 還是 list。型別轉換:AI 常用的轉換函式
age_str = "25"
age_int = int(age_str)
price = float("99.9")
label = str(42)
int("abc") 這種轉換會直接出現 ValueError,因為它不是數字格式。AI 生的程式常常沒有先驗證格式就轉換,遇到轉換相關的程式,可以主動請 AI 加上防護。List:有順序的清單
list 用方括號包起來,是有順序的資料集合,AI 常用它存多筆同性質的資料,例如城市清單、搜尋結果。
cities = ["Taipei", "Tokyo", "Seoul"]
print(cities[0])
print(cities[-1])
cities.append("Bangkok")
print(len(cities))
for city in cities:
print(city)
| 操作 | 語法 | 說明 |
|---|---|---|
| 取第一個 | list 的索引 0 | 索引從 0 開始,不是從 1 |
| 取最後一個 | list 的索引 -1 | 負數索引從尾巴算回來 |
| 取長度 | len 函式 | 有幾個元素 |
| 新增元素 | append 方法 | 加到清單最後面 |
| 逐一處理 | for 迴圈 | AI 最常用的走訪寫法 |
Dict:有名字的資料格
dict 用大括號包起來,是鍵值對的資料結構。API 回傳的 JSON 幾乎都是 dict,是 Vibe Coder 最常遇到的資料格式。
user = {"name": "Joan", "age": 30, "city": "Taipei"}
print(user["name"])
print(user.get("email", ""))
user["age"] = 31
user["email"] = "j@x.com"
if "name" in user:
print(user["name"])
| 取值方式 | 語法 | 差異 |
|---|---|---|
| 直接取 | 中括號加 key 名稱 | key 不存在會直接出錯 |
| 安全取 | get 方法加預設值 | key 不存在會回傳預設值,不會出錯 |
None:AI 最常忘記處理的空值
None 代表什麼都沒有。API 查不到資料、函式失敗、欄位沒有填寫,通常都會回傳 None。看到函式回傳值,先問自己有沒有可能是空值。
| 看到這個 | 要確認的事 |
|---|---|
| 函式裡有回傳空值的分支 | 呼叫這個函式的地方,有沒有判斷回傳值是不是空值 |
| get 方法沒給預設值 | 拿到的可能是空值,後面取值會出錯 |
| API 呼叫後直接取值 | API 失敗時回傳空值,要先判斷再取值 |
| 資料庫查詢結果 | 查不到資料可能回傳空值或空清單,都要判斷 |
延伸學習
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599
商業思維商學院:從零開始學商業思維
商業思維不是老闆或創業者的專利,而是看懂「價值如何被創造、交換與累積」的終身能力。受雇、接案、一人公司到自建事業,52 週帶你打造帶得走的原創商業藍圖。
NT$ 699

