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

開啟Python神奇寶盒!

張傑帆

National Taiwan University

開啟Python神奇寶盒!

目錄

  • Python簡介與環境設置
  • 第一個Python程式:Hello World
  • 基本輸入與輸出 (input/print)
  • 用print畫出炫酷圖案
    • 用Python程式碼繪製一隻ASCII小貓
  • Time套件基本應用

Alt1

🎯 學習目標

今天我們要一起踏上Python的奇幻冒險!

🔧 技能解鎖清單:

  • Python基礎語法 - 與電腦對話 💬
  • 輸入輸出操作 - 程式互動技能 🎤📢
  • ASCII藝術創作 - 程式碼繪圖 🎨
  • 時間模組應用 - 動態效果製作 ⏰✨
  • 綜合實作 - 創造個人作品 🚀

準備好和Python一起創造奇跡了嗎?

Let's code! 🐍✨

Python簡介與環境設置

什麼是Python?

  • 🐍 Python是一種簡潔、易學的程式語言
  • 📚 語法接近自然語言,適合初學者
  • 🚀 應用廣泛:網頁開發、資料分析、人工智慧
  • 🎯 「Life is short, use Python」

環境設置

  1. 下載Pythonhttps://www.python.org/
  2. 安裝IDE:推薦 VS Code 或 PyCharm
  3. 測試安裝:開啟終端機輸入 python --version
    alt text

第一個Python程式:Hello World

經典的開始 🎉

print("Hello, World!")
print("歡迎來到Python的世界!")

執行方式

  1. 建立 .py 檔案
  2. 輸入程式碼
  3. 執行:python filename.py

輸出結果

Hello, World!
歡迎來到Python的世界!

基本輸入與輸出 (input/print)

print("這是文字")
print(123)                # 數字
print("我今年", 20, "歲")  # 混合輸出

input() 函數

name = input("請輸入你的名字:")
age = input("請輸入你的年齡:")
print("哈囉", name, "!你今年", age, "歲")

實際互動範例

# 簡單的自我介紹程式
print("=== 自我介紹小程式 ===")
name = input("你的名字是?")
hobby = input("你的興趣是?")

print("\n很高興認識你!")
print(f"姓名:{name}")
print(f"興趣:{hobby}")
print("歡迎加入Python學習行列!🎉")

用print畫出炫酷圖案

ASCII藝術基礎

print("  *  ")
print(" *** ")
print("*****")
print(" *** ")
print("  *  ")

繪製愛心 💝

print("  ❤   ❤  ")
print(" ❤ ❤ ❤ ❤ ")
print("❤  ❤ ❤  ❤")
print(" ❤  ❤  ❤ ")
print("  ❤   ❤  ")
print("   ❤ ❤   ")
print("    ❤    ")

全型與半型字符說明

什麼是全型與半型?

半型字符 (Half-width)

  • 佔用1個字符寬度
  • 英文字母、數字、標點符號
  • 例如:A, 1, ;, :, (

全型字符 (Full-width)

  • 佔用2個字符寬度
  • 中文字符、全型英數字、全型標點
  • 例如:, , , ,

ASCII藝術中的重要性

# 半型字符 - 對齊整齊
print("  *  ")
print(" *** ")
print("*****")

# 混用全型半型 - 會造成對齊問題  
print("  *  ")  # 全型星號
print(" *** ")   # 半型星號
print("*****")   # 對齊錯亂!

建議

  • ASCII藝術統一使用半型字符
  • 中文說明文字使用全型標點
  • 注意輸入法切換:中/英文模式

Emoji字符使用注意事項 🎨

Emoji在ASCII藝術中的應用

# 使用emoji裝飾
print("🌟 Python學習之旅 🌟")
print("  ⭐ 歡迎來到程式世界 ⭐")

# 混合ASCII與emoji
print("    🐍")
print("   /|\\ ")
print("   / \\ ")
print("Python小蛇")

重要提醒:

  • 編碼問題:確保檔案以UTF-8編碼儲存
  • 終端機支援:有些終端機可能不支援emoji顯示
  • 對齊問題:emoji通常佔2個字符寬度,需注意對齊
  • 跨平台:不同作業系統的emoji顯示可能略有差異

繪製聖誕樹 🎄

print("      *      ")
print("     ***     ")
print("    *****    ")
print("   *******   ")
print("  *********  ")
print(" *********** ")
print("*************")
print("     |||     ")
print("     |||     ")
print("=== 聖誕快樂 ===")

用Python程式碼繪製一隻ASCII小貓

基本小貓圖案 🐱

print("     /\\_/\\  ")
print("    ( o.o ) ")
print("     > ^ <  ")
print("    _______")
print("   |       |")
print("   | MEOW! |")
print("   |_______|")

跨行字串 - 多行文字的優雅處理

什麼是跨行字串?

在Python中,當我們需要處理多行文字時,有幾種方式可以讓程式碼更整潔:

方法一:三重引號 """

# 使用三重引號處理多行文字
multi_line_text = """
  歡迎來到Python世界!
  這是第二行文字
  這是第三行文字
  程式設計真有趣!
"""
print(multi_line_text)

方法二:使用 \n 換行符號

message = "第一行\n第二行\n第三行"
print(message)

跨行字串在ASCII藝術中的應用

# 用三重引號建立ASCII藝術
cat_ascii = """
   /\\_/\\  
  ( o.o ) 
   > ^ <  
  _______
   |       |
   | MEOW! |
   |_______|
"""

print("可愛的小貓咪:")
print(cat_ascii)

圖片轉ASCII Art實作

什麼是ASCII Art?

ASCII Art是用鍵盤上的字符(如字母、數字、符號)來創作圖像的藝術形式。

手動創作ASCII圖案步驟:

  1. 選擇主題:決定要畫什麼(動物、物品、人物等)
  2. 設計輪廓:用符號勾勒出基本形狀
  3. 填充細節:加入眼睛、嘴巴等特徵
  4. 調整對齊:確保每行字符對齊整齊

線上ASCII Art產生器推薦

  1. Text to ASCII Art Generator

  2. ASCII Art Archive

  3. 圖片轉ASCII工具

  4. AI產生 - 任何你熟悉的LLM。

實作練習:建立自己的ASCII圖案

  • 可以自行編輯或用上述工具製作ASCII圖案
  • 把成果放到Python程式中執行
  • 可以試著用AI幫忙
  • 嘗試把ASCII圖案做成動畫
    (等一下會教你怎麼用time套件做動畫!有興趣的同學可以先試試看!)

休息一下

Time套件基本應用

匯入時間模組

import time

# 獲取當前時間
current_time = time.time()
print("目前時間戳:", current_time)

# 格式化時間顯示
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S")
print("現在時間:", formatted_time)

time模組基本功能介紹

1. 基本時間函數

import time

# 獲取當前時間戳(從1970年1月1日開始的秒數)
timestamp = time.time()
print(f"時間戳:{timestamp}")

# 暫停程式執行
print("準備暫停3秒...")
time.sleep(3)
print("暫停結束!")

2. 時間格式化顯示

import time

# 格式化當前時間
current_time = time.strftime("%Y年%m月%d日 %H:%M:%S")
print(f"現在時間:{current_time}")

# 不同的時間格式
print("年-月-日:", time.strftime("%Y-%m-%d"))
print("時:分:秒:", time.strftime("%H:%M:%S"))
print("星期幾:", time.strftime("%A"))

3. 計時器應用

import time

def simple_timer(seconds):
  for i in range(seconds, 0, -1):
    print(f"倒數:{i} 秒")
    time.sleep(1)
  print("時間到!⏰")

# 使用計時器
simple_timer(5)

4. 程式執行時間測量

import time

start_time = time.time()

# 模擬一些工作
for i in range(1000000):
  pass

end_time = time.time()
execution_time = end_time - start_time
print(f"程式執行時間:{execution_time:.4f} 秒")

時間延遲

import time

print("開始倒數...")
for i in range(5, 0, -1):
  print(f"{i}...")
  time.sleep(1)  # 暫停1秒
print("時間到!🎉")

用 print + time 做出會動的動畫

跳動的心 💓

import time
import os

hearts = ["💜", "💙", "💚", "💛", "❤"]

for i in range(20):
  os.system('clear')  # Windows用 'cls'
  heart = hearts[i % len(hearts)]
  print(f"\n\n      {heart} Python {heart}")
  print("    學習程式好有趣!")
  time.sleep(0.5)

載入動畫

import time

def loading_animation():
  chars = "|/-\\"
  for i in range(20):
    print(f"\r載入中 {chars[i % len(chars)]}", end="")
    time.sleep(0.2)
  print("\r載入完成!✅")

loading_animation()

實例展示:ASCII小貓 🐱

import time

def draw_cat():
  cat = [
    "     /\\_/\\  ",
    "    ( o.o ) ",
    "     > ^ <  ",
  ]
  
  print("繪製小貓中...")
  for line in cat:
    print(line)
    time.sleep(0.5)
  
  print("\n🐱 可愛的ASCII小貓完成了!")

draw_cat()

會眨眼的小貓 😸

import time
import os

def blinking_cat():
  open_eyes = [
    "     /\\_/\\  ",
    "    ( o.o ) ",
    "     > ^ <  "
  ]
  
  closed_eyes = [
    "     /\\_/\\  ",
    "    ( -.- ) ",
    "     > ^ <  "
  ]
  
  for _ in range(5):
    os.system('clear')  # Windows用 'cls'
    for line in open_eyes:
      print(line)
    time.sleep(1)
    
    os.system('clear')
    for line in closed_eyes:
      print(line)
    time.sleep(0.3)

blinking_cat()

回家作業 - HW1


作業選項一:個人化ASCII藝術創作

作業要求:

創作一個結合個人特色的Python程式,包含以下元素:

  1. 自我介紹程式:使用 input() 收集用戶的姓名、興趣、喜歡的顏色等資訊
  2. ASCII藝術創作:用 print() 設計一個代表自己的圖案(可以是動物、符號、或抽象圖形)
  3. 動態效果:使用 time.sleep() 讓你的作品有時間延遲效果
  4. 個性化輸出:根據收集的資訊,輸出個人化的訊息

範例架構(不一定要跟我的一樣,可以發揮你的創意):

import time

# 收集個人資訊
name = input("你的名字:")
favorite_animal = input("最喜歡的動物:")

# 創作ASCII藝術
print(f"\n{name}的專屬{favorite_animal}:")
# 在這裡用print()畫出你的創作

time.sleep(1)
print(f"這是屬於{name}的獨特作品!✨")

作業選項二:互動式故事產生器

作業要求:

設計一個會根據用戶輸入產生不同結局的小故事程式:

  1. 角色設定:用 input() 讓用戶輸入主角名字、職業、特殊能力
  2. 情境選擇:提供2-3個選項讓用戶選擇故事發展
  3. ASCII場景:用 print() 繪製不同的場景(森林、城堡、太空等)
  4. 動態敘述:用 time.sleep() 控制故事節奏,營造懸疑感
  5. 多重結局:根據用戶選擇顯示不同的故事結局

創意提示:

  • 可以做奇幻冒險、愛情、科幻故事等
  • 加入emoji讓故事更生動
  • 用不同的ASCII圖案代表不同場景

作業選項三:個人專屬動畫時鐘

作業要求:

製作一個具有個人風格的動態時鐘程式:

  1. 個人化設置:用 input() 讓用戶設定自己的名字和喜好
  2. 時間顯示:使用 time 模組顯示當前時間
  3. ASCII裝飾:設計專屬的時鐘邊框或裝飾圖案
  4. 動態效果
    • 每秒更新時間顯示
    • 整點時顯示特殊動畫(如煙火、愛心等)
    • 不同時段顯示不同的ASCII/emoji圖案(太陽☀️、月亮🌙、星星⭐
  5. 個性化訊息:根據時間顯示不同的問候語

進階挑戰:

  • 加入倒數計時功能
  • 設計會變化的背景圖案
  • 根據時間播放不同的ASCII動畫

提交要求(三個作業共通):

  • 三個作業三選一完成即可 (喜歡的話也可以三個都做!分開繳交即可!)
  • 程式碼需要有註解說明
  • 說明你的創意發想與實作過程、心得、反思與AI使用過程!

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

圖片放大特效

table樣式

![Alt1](../images/1200px-National_Taiwan_University_logo.svg.png)![Alt2](../images/Python-logo-notext.svg.png) <style scoped> img[alt="Alt1"]{ background: rgba(255, 255, 255, 0); position: absolute; top: 10%; left: 10%; /* transform: translate(-50%, -50%); */ width: 200px; /* 調整圖片寬度 */ height: auto; /* 保持原始比例 */ padding:0; margin:0; z-index: 1; } img[alt="Alt2"]{ background: rgba(255, 255, 255, 0); position: absolute; top: 10%; left: 75%; /* transform: translate(-50%, -50%); */ width: 200px; /* 調整圖片寬度 */ height: auto; /* 保持原始比例 */ padding:0; margin:0; z-index: 2; } </style>

--- - **掌握Python基礎語法** - 學會用最簡潔的方式與電腦對話 💬 - **熟練輸入輸出操作** - 讓程式能夠聆聽你的聲音,也能回應你的需求 🎤➡️📢 - **創作ASCII藝術** - 用程式碼變身數位藝術家,畫出可愛的圖案 🎨 - **運用時間模組** - 讓你的程式活起來,會跳舞、會眨眼!⏰✨ - **整合實作能力** - 把所有技能組合起來,創造屬於自己的作品 🚀 #### 🧠 運算思維培養: - **拆解(Decomposition)** - 把複雜的ASCII圖案拆成一行行的print指令 - **模式識別(Pattern Recognition)** - 發現重複的圖案結構和時間循環規律 - **抽象化(Abstraction)** - 把現實世界的時間概念轉換成程式邏輯 - **演算法設計(Algorithm Design)** - 設計步驟讓程式按順序執行,創造動畫效果

--- #### 會說話的小貓 💬 ```python def cute_cat(): print(" /\\_/\\ ") print(" ( ^.^ ) ") print(" > ♡ < ") print(" /| |\\ ") print(" (_|___|_) ") print(" | | ") print(" / \\ ") print(" (_______) ") print() print(" ╭─────────────╮") print(" │ 哈囉!我是 │") print(" │ Python小貓 │") print(" │ 🐾 喵~ │") print(" ╰─────────────╯") cute_cat() ```

--- ## ASCII Arts ![alt height:550](image-2.png)

--- ### 實作範例:小狗ASCII Art 🐶 ```python # 可愛小狗 dog_ascii = """ / \\ / \\ ( . .) ) ( ( v ) ^^ | ^^ WOOF! """ print("汪汪小狗:") print(dog_ascii) ``` --- ### 實作範例:房子ASCII Art 🏠 ```python house_ascii = """ /\\ / \\ /____\\ | | | [] | | [] | |______| HOME """ print("溫馨小屋:") print(house_ascii) ``` --- ### 進階技巧:函數化ASCII圖案 ```python def display_ascii_art(art_name, ascii_content): """顯示ASCII藝術的函數""" print(f"=== {art_name} ===") print(ascii_content) print("=" * 20) # 使用函數顯示不同圖案 rocket = """ /\\ / \\ | | | ** | /| |\\ / |____| \\ / ROCKET \\ ^^^^^^^^^^ """ display_ascii_art("火箭", rocket) ```

想要更複雜的ASCII圖案?可以使用線上工具:

--- ### 實作練習:建立自己的ASCII圖案庫 ```python # ASCII圖案庫 ascii_library = { "smile": """ 😊 /|\\ | / \\ """, "tree": """ 🌲 /|\\ / | \\ / | \\ /___|___\\ | | """, "star": """ ⭐ /|\\ / | \\ *--+--* \\ | / \\|/ * """ } # 選擇要顯示的圖案 choice = input("選擇圖案 (smile/tree/star): ") if choice in ascii_library: print(ascii_library[choice]) else: print("找不到該圖案!") ```