資料工程中階・冪等寫入、路由、重試與分頁
這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。
- 01
冪等寫入模擬
中等用 dict 模擬一張以
(stock_id, date)為複合主鍵的表。程式逐行讀取指令直到讀到end:upsert <stock_id> <date> <close>:主鍵不存在就新增,存在就更新 closeshow:印出筆數:<n>,接著每筆一行<stock_id> <date> <close>(依 stock_id、date 排序;close 用 float 印出)
同一筆 upsert 兩次,表裡仍然只有一筆——這就是冪等。
本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。
作答登入後可作答 - 02
任務路由統計
容易第 3 章把任務依名稱分流到不同佇列。變數
task_names是待派送的任務名稱;路由規則:名稱以crawler_開頭 → 佇列crawler,以etl_開頭 → 佇列etl,其餘 → 佇列default。請統計每個佇列的任務數,依佇列名稱排序印出<佇列> <數量>。本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。
作答登入後可作答 - 03
指數退避重試
容易第 4 章用
self.retry()重試失敗任務。請依序讀入四個整數:起始等待秒數 base、倍率 factor、最大重試次數 max_retries、等待上限 cap,計算每次重試前的等待秒數min(cap, base × factor^(n-1)),逐次印出第 n 次重試:等待 <秒> 秒,最後印出總等待:<秒> 秒。本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。
作答登入後可作答 - 04
API 分頁參數
容易補充 E 的 FastAPI 查詢股價要支援分頁。請讀入三個整數:總筆數 total、頁碼 page(從 1 起)、每頁筆數 size,印出:
offset=<(page-1)×size> limit=<size> total_pages=<無條件進位的頁數> has_next=<True|False>has_next代表還有下一頁(page < total_pages)。這組數字會直接對應 SQL 的LIMIT <limit> OFFSET <offset>。本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。
作答登入後可作答

送件鴿飛出去了