從turtle海龜動畫學習Python-高中彈性課程
Published in 高中彈性課程, 2025
“Talk is cheap. Show me the code.”
― Linus Torvalds
老子第41章
上德若谷
大白若辱
大方無隅
大器晚成
大音希聲
大象無形
道隱無名
拳打千遍, 身法自然
🐢 Python Turtle Graphics 課程系列
本系列課程將帶你從基礎到進階,學會使用 Python Turtle 創作精美的圖形作品。
本系列文章之連結:
- 課程介紹 - Python Turtle Graphics 完整教學 (目前頁面)
從turtle海龜動畫 學習 Python - 高中彈性課程系列 5 用函數封裝重複性指令-呼叫函數令烏龜畫正 n 邊形
從 Logo 海龜繪圖 學習 Python - 高中彈性課程系列 7 遞歸 recursive, 碎形(分形 fractal), 藝術畫
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 8.1 碎形 L-system [外部連結]
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 9 Python 物件導向介紹 [外部連結]
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 9.1 Python 物件導向的練習 [外部連結]
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 10 藝術畫 自定義海龜形狀 [外部連結]
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 10.1 藝術畫 python繪製天然雪花結晶 [外部連結]
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 10.2 藝術畫 Python 製作生成式藝術 [外部連結]
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 11.1 氣泡排序 - 用 turtle 呈現演算法之執行動作 [外部連結]
- 從turtle海龜動畫 學習 Python - 高中彈性課程系列 11.2 maze 迷宮 - 用 turtle 呈現演算法之執行動作 [外部連結]
課程簡介
“There’s no shortage of remarkable ideas, what’s missing is the will to execute them.” – Seth Godin 「很棒的點子永遠不會匱乏,然而缺少的是執行點子的意志力。」—賽斯.高汀
本課程系列專為高中生設計,透過趣味的海龜繪圖(Turtle Graphics)方式,引導學生學習 Python 程式設計。從基本的移動指令開始,逐步建構程式設計的核心概念。
課程目標
藉由有趣的「海龜動畫繪圖」學會基礎的 Python 程式設計 本篇介紹本彈性課程之開設由來, 以及一些供後續查閱之Python 之細節, 方便後面再回頭交叉索引之內容, 文獻等
- 培養邏輯思維能力
- 學習基礎程式設計概念
- 透過視覺化結果增強學習動機
- 建立解決問題的思維模式
課程大綱
第一部分:基礎概念
- Python 環境設置
- 海龜繪圖基本指令
- 座標系統概念
第二部分:程式結構
- 迴圈概念與應用
- 條件判斷
- 函數定義與使用
第三部分:進階應用
- 幾何圖形繪製
- 碎形圖案設計
- 創意專題製作
教學資源
課程包含完整的教學材料:
- 課程講義
- 範例程式碼
- 練習題目
- 專題作品範例
下圖: 本文作者以 Python 實現 板塊藝術 (說明:使用 Python 創作的板塊藝術作品集合)
本篇作者模仿 “Coding Challenge #14: Fractal Trees - Recursive” 的用色呈現碎形樹 (說明:參考 “Coding Challenge #14: Fractal Trees - Recursive” 製作的彩色碎形樹)
板塊藝術: codes 請參考 “遞歸 recursive, 碎形(分形 fractal), 藝術畫” 那部分, (註: 參考自: 用 Logo語言繪製之板塊藝術, BFOIT Introduction to Computer Programming ref: http://guyhaas.com/bfoit/itp/Operators.html link)
碎形樹: https://www.youtube.com/watch?v=0jjeOYMjmDU&t=8s, YouTube參考影片 Python codes 請參考本系列 “第7課:遞歸 recursive” 和 “第8課:碎形 (分形 fractal)” 部分。 tree1_angle_headingLocal_20201011.py 背景色設為黑色 turtle.bgcolor('black') T.pencolor('white')
