一起玩Python程式:新手寫程式也可以這麼簡單!

Week 05: 課程檢視、回顧與統整

張傑帆

National Taiwan University

課程檢視、回顧與統整

目錄

  • 🔄 前四週學習回顧
  • 🏗️ Python基礎架構整合
  • 📊 資料型態與變數複習
  • ⚡ 流程控制知識鞏固
  • 🎯 綜合實戰練習
  • 🧠 運算思維總整理
  • 💎 學習成果展示

Alt1

🎯 學習目標

今天我們要回顧與整合前四週的所有學習成果!

🔧 整合技能清單:

  • 知識架構建立 - 串聯所有概念 🏗️
  • 綜合實作能力 - 整合運用技能 ⚡
  • 問題解決思維 - 運用運算思維 🧠
  • 程式設計邏輯 - 建立完整思路 💡
  • 實戰經驗累積 - 解決真實問題 🎯
  • 自主學習能力 - 持續進步動力 🚀

🔄 學習歷程回顧

Week 01: 程式設計啟航 🚢

  • 環境設置 - Python開發環境建立
  • 基本概念 - 程式設計思維初探
  • 學習方法 - 有效學習策略建立

Week 02: Python基礎入門 🐍

  • Hello World - 第一個Python程式
  • 輸入輸出 - input() 和 print() 函數
  • ASCII藝術 - 創意程式設計體驗
  • Time模組 - 基礎模組使用

Week 03: 資料與變數掌握 📊

  • 資料型態 - int, float, str, bool
  • 變數操作 - 命名規則與使用技巧
  • 數學運算 - 七種運算符號應用
  • 字串處理 - 格式化與操作技術
  • Tkinter模組 - GUI模組使用

Week 04: 流程控制決策 🤔

  • 條件判斷 - if-else語法結構
  • 比較運算 - 六種比較符號應用
  • 邏輯運算 - and、or、not組合
  • 多重判斷 - elif複雜條件處理
  • 互動選單 - 使用者操作介面設計
  • 隨機功能 - random模組趣味應用

🏆 四週學習成就

  • ✅ 熟悉 Python 基礎語法與操作
  • ✅ 建立清晰的程式設計邏輯
  • ✅ 培養獨立解決問題的能力
  • ✅ 發揮創意,完成多項實作練習
  • ✅ 能夠整合知識,應用於真實情境

🏗️ Python基礎IO架構整合

# 1. 模組引入
import random
import time

# 2. 變數宣告與初始化
name = input("請輸入您的姓名:")
age = int(input("請輸入您的年齡:"))
score = 0

# 3. 條件判斷與流程控制
if age >= 18:
    print(f"歡迎成年人 {name}!")
    if score >= 80:
        print("您的表現優秀!")
    else:
        print("繼續加油!")
else:
    print(f"小朋友 {name},要努力學習哦!")

# 4. 輸出結果
print(f"程式執行完成,{name} 再見!")

📊 資料型態與變數複習

四大資料型態總覽

型態 英文名稱 用途 範例 常用函數
整數 int 計數、索引 42 int()
浮點數 float 小數計算 3.14 float()
字串 str 文字處理 "Hello" str(), len()
布林值 bool 邏輯判斷 True bool()

🔄 型態轉換實戰

# 使用者輸入處理
user_input = input("請輸入一個數字:")  # str
number = float(user_input)              # float
is_positive = number > 0                # bool
result_text = f"數字 {number} 是正數:{is_positive}"  # str

print(result_text)

⚡ 流程控制知識鞏固

條件判斷完整語法

# 基本if-else
if 條件:
    執行動作
else:
    其他動作

# 多重elif
if 條件1:
    動作1
elif 條件2:
    動作2
elif 條件3:
    動作3
else:
    預設動作

簡易變化巢狀判斷

if age >= 18:
    print(f"{name} 已成年 !")
    if score >= 80:
        print("您的表現優秀!")
    else:
        print("繼續加油!")
else:
    print(f"小朋友 {name},要努力學習哦!")

🎯 運算符號總整理

類型 符號 說明 範例
比較 ==, !=, >, <, >=, <= 值的比較 age >= 18
邏輯 and, or, not 條件組合 age >= 18 and score >= 80
數學 +, -, *, /, //, %, ** 數值運算 total = price * quantity

🎯 綜合實戰練習:資訊管理系統

import random

print("=== 🎓 學生資訊管理系統 ===")
print("1. 新增學生資料")
print("2. 成績計算與分析")
print("3. 隨機點名系統")
print("4. 離開系統")

choice = input("請選擇功能(1-4):")

if choice == "1":
    # 新增學生資料
    name = input("學生姓名:")
    age = int(input("學生年齡:"))
    grade = input("就讀年級:")
    
    print(f"✅ 學生 {name} 資料輸入完成")
    print(f"年齡:{age} 歲,年級:{grade}")

(接下頁)

(接上頁)

elif choice == "2":
    # 成績計算
    chinese = float(input("國文成績:"))
    english = float(input("英文成績:"))
    math = float(input("數學成績:"))
    
    total = chinese + english + math
    average = total / 3
    
    print(f"總分:{total}")
    print(f"平均:{average:.2f}")
    
    if average >= 90:
        print("🏆 優秀!")
    elif average >= 80:
        print("👍 良好!")
    elif average >= 70:
        print("✅ 及格!")
    else:
        print("💪 需要加油!")

elif choice == "3":
  # 隨機點名系統
  students = ["小明", "小華", "小美", "小強", "小芳"]
  selected = random.choice(students)
  print(f"🎲 隨機點名:{selected}")

elif choice == "4":
  print("👋 系統結束,感謝使用!")
else:
  print("⚠ 請輸入有效選項(1-4)")

小練習

  • 請在上面的範例中增加選項與功能:
    • 增加一個新選項,例如「查詢學生資料」或「修改學生成績」。
    • 選項內可以考慮用到輸入/輸出變數運算條件判斷等。
    • 可以自由發揮創意建立任意選項。
    • 如果使用者輸入非數字時,能夠提示錯誤並重新輸入。(這個較有挑戰性)

有任何問題都可以貼上討論區

休息時間

🧠 運算思維總整理

  • 分解問題:將複雜問題拆解成小步驟
  • 模式識別:找出重複結構與規律
  • 抽象化:忽略細節,專注核心邏輯
  • 演算法設計:規劃解決問題的步驟
  • 測試與修正:不斷驗證與優化程式

Tkinter

Tkinter 複習

  • Tkinter 是 Python 內建的 GUI 工具,可以快速建立視窗應用程式。
  • 只能單機執行不能用Google Colab。

1. 建立基本視窗

import tkinter as tk

window = tk.Tk()
window.title("Tkinter 基本視窗")
window.geometry("300x200")

label = tk.Label(window, text="Hello, Tkinter!", font=("Arial", 16))
label.pack(pady=20)

window.mainloop()

2. 按鈕與事件

import tkinter as tk

def say_hello():
  label.config(text="你按下了按鈕!")

window = tk.Tk()
window.title("按鈕範例")

label = tk.Label(window, text="請按下按鈕")
label.pack()

button = tk.Button(window, text="點我", command=say_hello)
button.pack()

window.mainloop()

3. 輸入框與取得內容

import tkinter as tk

def show_name():
  name = entry.get()
  label.config(text=f"你好,{name}!")

window = tk.Tk()
window.title("輸入框範例")

entry = tk.Entry(window)
entry.pack()

button = tk.Button(window, text="送出", command=show_name)
button.pack()

label = tk.Label(window, text="")
label.pack()

window.mainloop()

探索常用元件

Tkinter 元件:Label, Button, Entry, Text, Frame, Listbox 等等。
佈局管理:pack(), grid(), place() 等等。
事件處理:按鈕點擊、鍵盤輸入、滑鼠事件等等。
視窗屬性:標題、大小、圖示、背景色等等。
彈出視窗:訊息框、輸入框、檔案選擇框等等。
圖片顯示:使用 PhotoImage 顯示圖片。
菜單欄:建立應用程式的選單。
進階元件:Canvas, Scrollbar, Checkbutton, Radiobutton 等等。

參考學習資料:
https://docs.python.org/3/library/tk.html
https://www.pythontutorial.net/tkinter/

小練習

  • 試把之前做過的程式改成 GUI 介面。
  • 例如:學生資訊管理系統、成績計算器、隨機點名器。

🎉 恭喜完成第五週回顧!

下週見,持續進步!

-----------------------------------------

圖片放大特效

table樣式

- 🚀 期中專題預備

準備好展現你的Python學習成果了嗎?

# Let's integrate everything! 💎✨

### 完整程式結構

### 系統功能規劃

--- ## 🚀 期中專題預備 ### 專題方向建議 - 學生資訊管理系統進階版 - 小型互動遊戲設計 - 資料分析與視覺化專案 - 自動化小工具開發 ### 準備事項 - 明確專題目標 - 分工合作規劃 - 時程安排與進度追蹤 - 成果展示與分享

--- ## 💎 學習成果展示 - 展現你的Python專案 - 分享學習心得與挑戰 - 互評與交流,激發創意 - 持續精進,邁向更高目標!