iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
自我挑戰組

30 天全面認識 Python系列 第 30

Day 30:期末專案 —— Python 自動化工具

  • 分享至 

  • xImage
  •  

為什麼要做專案?

學程式不只是為了寫一堆小範例,更重要的是能「解決問題」。這最後一天,我們要打造一個「Python 自動化工具」,讓你把輸入、處理、輸出全部串起來,體驗 Python 帶來的實用價值。

專案目標

設計一個「每日任務小幫手」,具備以下功能:
-輸入:讀取使用者輸入的代辦事項,或從檔案讀取。
-處理:把任務存到一個字典,並自動加上日期與狀態(未完成/已完成)。
-輸出:把資料存成 CSV 檔,並且在終端機輸出「今日任務表」。

程式範例

import csv
from datetime import datetime

# 1. 建立資料結構
tasks = []

# 2. 使用者輸入
print("輸入你的代辦事項,輸入 q 結束:")
while True:
    task = input("請輸入任務:")
    if task.lower() == "q":
        break
    tasks.append({"任務": task, "狀態": "未完成", "日期": datetime.now().strftime("%Y-%m-%d")})

# 3. 存檔
file_name = "todo_list.csv"
with open(file_name, "a", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=["任務", "狀態", "日期"])
    if f.tell() == 0:
        writer.writeheader()
    writer.writerows(tasks)

# 4. 顯示結果
print("\n今日任務清單:")
for i, t in enumerate(tasks, 1):
    print(f"{i}. {t['任務']} - {t['狀態']} ({t['日期']})")

進一步挑戰

  • 新增「完成任務」的功能,讓使用者輸入任務編號就能修改狀態。
  • 把任務按照日期分類,輸出成多個檔案(每日一份)。
  • 加上爬蟲功能,每天抓一條新聞,當作「今日提醒」。

今日小挑戰

請嘗試完成這個「每日任務小幫手」,並加入你自己的創意(例如:自動寄 Email、排程提醒、甚至 Telegram Bot)。
這個挑戰能讓你完整走一次「需求 → 設計 → 撰寫 → 儲存 → 輸出」的開發流程,體驗真正專案開發的感覺。


恭喜你!

30 天的 Python 之旅到這裡劃下句點,但這只是開始,從基礎語法、資料結構、函式,到專案應用,你已經具備把 Python 當作解決問題工具的能力,接下來,你可以挑戰更進階的方向,例如:

  • 資料分析(pandas, matplotlib)
  • 機器學習(scikit-learn, TensorFlow)
  • 網站開發(Flask, Django)
  • 自動化腳本(爬蟲、檔案處理、API)

未來屬於會寫程式的人,而你已經踏出了關鍵的第一步。加油
--- by Ricky


上一篇
Day 29:專案 —— 爬蟲 + 資料整理
系列文
30 天全面認識 Python30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言