Pythonのturtleで親子プログラミング!図形アートで算数が得意になる方法
2020年度から小学校でプログラミング教育が必修化され、お子さんにプログラミングを学ばせたいと考える保護者の方が増えています。 [1, 6] しかし、「何から始めたらいいかわからない」「子どもが興味を持つか不安」といった悩みも少なくありません。 [6] そんなご家庭にぴったりなのが、Pythonというプログラミング言語に標準で入っている「turtle(タートル)」ライブラリです。 [15] この記事では、親子で楽しみながらプログラミングの基礎と算数の図形の知識を同時に学べる「turtle」の魅力と、具体的な学習方法を初心者にも分かりやすく解説します。
はじめに:Pythonのturtleって何?
Pythonの「turtle」とは、画面上に現れるカメ(turtle)を簡単な命令で動かし、その軌跡で線を描いて図形を作成する、お絵描きのようなプログラミングツールです。 [12, 17] もともとは、子ども向けの教育用言語「LOGO」から生まれたもので、プログラムの結果がすぐに絵として表示されるため、視覚的に分かりやすく、プログラミングの第一歩として世界中で活用されています。 [12, 19] 例えば、「前に100進め」「右に90度回れ」といった命令を組み合わせるだけで、あっという間に正方形を描くことができます。 [15]
どうして算数の学習に良いの?
turtleを使ったお絵描きは、プログラミング的思考だけでなく、算数、特に図形の学習に大きな効果を発揮します。文部科学省の「小学校プログラミング教育の手引き」でも、5年生の算数で正多角形をプログラミングを通して描く例が挙げられています。 [18] 正三角形や正五角形を描くためには、「内角」や「外角」といった角度の知識が不可欠です。 [5] 「どうしてこの角度にすると、きれいな星形になるんだろう?」と試行錯誤する過程が、まさに算数の問題を解いているのと同じであり、子どもは遊び感覚で図形の性質を体感的に理解することができます。親子で一緒に「ちゃんと正三角形が描けたね!曲がる角度は120度だったね」などと対話しながら進めることで、算数への興味も自然と高まるでしょう。
Pythonとturtleを始める方法(Windows/Mac対応)
では早速、ご家庭でturtleを使ってみましょう。プログラミングが初めての方でも、以下の手順で簡単に準備できます。
- Pythonのインストール: まず、お使いのパソコンにPythonをインストールします。Pythonは公式サイトから無料でダウンロードできます。Windowsの場合は、インストーラーを実行する際に「Add Python to PATH」というチェックボックスにチェックを入れると、後々の設定がスムーズになります。
 - エディタの準備: Pythonのコードを書くためのソフトウェア(エディタ)を用意します。Pythonをインストールすると自動でついてくる「IDLE」というシンプルなエディタが初心者にはおすすめです。 [12] その他、VS Codeなどお好みのエディタを使っても問題ありません。
 - turtleを使ってみる: 嬉しいことに、turtleはPythonに標準で備わっている機能なので、追加のインストールは不要です。 [15] 準備が整ったら、エディタを開いて以下の簡単なコードを書いて実行してみてください。
 
import turtle # turtleライブラリを使いますという宣言
turtle.forward(100) # カメが100ピクセル前進
turtle.left(90)     # カメが左に90度回転
turtle.forward(100) # 再び100ピクセル前進
turtle.done()       # 描画ウィンドウがすぐに消えないようにするおまじない
これを実行すると、新しいウィンドウが開き、矢印(デフォルトのカメ)が動いてL字型の線が描かれれば成功です!最後のturtle.done()は、プログラムが終わってもウィンドウを表示し続けるための命令なので、忘れないようにしましょう。 [10]
基本の図形を描いてみよう(正方形・正三角形・円)
準備ができたら、いよいよ図形を描いていきます。基本的な図形を描くことで、プログラミングの重要な概念である「繰り返し(ループ)」と、算数の「角度」の関係を学びます。
正方形を描く
正方形は、4つの辺の長さが同じで、4つの角がすべて90度です。つまり、「前に進んで90度曲がる」という動作を4回繰り返せば描けます。これをプログラムにすると以下のようになります。
import turtle
t = turtle.Turtle() # カメの分身を作成
t.shape("turtle")   # 見た目をカメのアイコンに
t.color("green")    # ペンの色を緑に
# 「for i in range(4):」は、以下の字下げされた部分を4回繰り返すという意味
for i in range(4):
    t.forward(100)  # 100ピクセル前進
    t.right(90)     # 90度右に回転
turtle.done()
このコードではforという命令を使いました。これはプログラミングにおける「繰り返し処理」で、同じコードを何度も書く手間を省いてくれる非常に便利な仕組みです。 [21] コンピュータは人間と違って、何百回、何千回の繰り返しも正確にこなすことができます。
正三角形を描く
次に正三角形に挑戦しましょう。正三角形の内側の角(内角)は60度です。しかし、turtleのカメが曲がる角度は、図形の外側の角、すなわち「外角」になります。 [5] ある角の内角と外角を足すと直線になるので180度です。 [11] つまり、正三角形の外角は 180度 - 60度 = 120度 となります。この120度を3回曲がれば、正三角形が描けるはずです。
import turtle
t = turtle.Turtle()
for i in range(3):
    t.forward(100)
    t.right(120)    # 120度(外角)回転
turtle.done()
円を描く
turtleには円を簡単に描くためのcircle()という命令も用意されています。半径を指定するだけで、きれいな円を描いてくれます。
import turtle
t = turtle.Turtle()
t.color("blue")
t.circle(50) # 半径50ピクセルの円を描く
turtle.done()
実はこの円も、コンピュータが目に見えないほど細かい直線をたくさん描くことで、滑らかな円に見せています。このことをお子さんに伝えると、プログラミングへの興味がさらに深まるかもしれません。
算数ポイントの解説:内角・外角と多角形の不思議

turtleで図形を描く上で最も重要な算数の知識が「内角」と「外角」です。 [7] そして、どんな多角形でも「外角の和は必ず360度になる」という、とても面白い性質があります。 [5, 7]
カメが多角形を描いて出発点に戻ってくるとき、カメは合計で360度(ぐるっと一周)向きを変えています。これが「外角の和が360度」ということなのです。このルールを知っていると、どんな正n角形でも描くことができます。
正n角形の1つの外角 = 360度 ÷ n
この公式を使えば、例えば正五角形なら 360 ÷ 5 = 72度、正六角形なら 360 ÷ 6 = 60度 ずつ曲がれば良いことがすぐに分かります。親子で下の表を埋めながら、色々な多角形を描くプログラムに挑戦してみてください。
| 図形 | 辺の数 (n) | turtleが曲がる角度(外角) | 1つの内角 | 内角の和 (180°×(n-2)) | 
|---|---|---|---|---|
| 正三角形 | 3 | 120° (360 ÷ 3) | 60° | 180° | 
| 正方形 | 4 | 90° (360 ÷ 4) | 90° | 360° | 
| 正五角形 | 5 | 72° (360 ÷ 5) | 108° | 540° | 
| 正六角形 | 6 | 60° (360 ÷ 6) | 120° | 720° | 
表にある「内角の和」の公式 180°×(n-2) も中学校で習う重要な公式です。 [8, 11] なぜこの式になるのかというと、どんなn角形も、1つの頂点から対角線を引くと (n-2)個の三角形に分割できるからです。 [11] プログラミングを通して、算数・数学の先取り学習ができてしまうのも、turtleの面白いところです。
繰り返しと対称模様:プログラミングで広がる図形アート
基本の図形が描けるようになったら、次は「繰り返し」を応用して、万華鏡のような美しい図形アートに挑戦してみましょう。同じ図形を少しずつ回転させながら何度も描くだけで、驚くほど複雑で綺麗な模様が生まれます。
import turtle
t = turtle.Turtle()
t.speed(0) # 描画速度を最速に
# 正方形を36回、10度ずつずらしながら描く
for i in range(36):
    # --- ここからが正方形を描く処理 ---
    for j in range(4):
        t.forward(100)
        t.right(90)
    # --- ここまでが正方形を描く処理 ---
    
    t.right(10) # 次の正方形を描くために10度回転
t.hideturtle() # 最後にカメを隠す
turtle.done()
このコードを実行すると、正方形が回転しながら重なった、美しい模様が描かれます。t.speed(0)は描画速度を一番速くする命令で、複雑な絵も一瞬で完成します。色を変えたり、繰り返す回数や角度を変えたりするだけで、全く違う模様が生まれます。ぜひ親子で「どんな模様ができるかな?」と実験してみてください。
親子で学ぶ工夫:モチベーションを維持するヒント
プログラミング学習では、子どものモチベーションを維持することが非常に重要です。 [1, 2, 4] せっかく始めても、「つまらない」「難しい」と感じてしまうと長続きしません。 [3] 親子でturtleを楽しむための、ちょっとした工夫をご紹介します。
- 小さな目標と成功体験: まずは「正方形を描く」など簡単な目標を立て、できたら「すごい!できたね!」と思いっきり褒めてあげましょう。小さな成功体験の積み重ねが自信に繋がります。 [2, 4]
 - 「なぜ?」を大切にする: 「どうして120度曲がると三角形になるんだろう?」とお子さんに問いかけ、一緒に考える時間を作りましょう。答えられなくても大丈夫。「外角の和が360度だからだね」と、算数の知識と結びつけてあげることが大切です。
 - エラーは友達: プログラムがうまく動かなくても、「間違い探しゲームだ!」「バグを見つけよう!」と前向きな声かけをしましょう。試行錯誤の過程こそが、プログラミング的思考力を育てます。
 - 作品を形に残す: 描いた図形は、スクリーンショットを撮って画像として保存しましょう。それを印刷して壁に飾ったり、作品集のノートを作ったりすることで、達成感が得られます。
 
学習内容や成果が具体的にイメージしにくいプログラミング学習において、保護者の関わり方や声かけは非常に重要です。 [6] 親子で一緒に学習する時間を持つこと自体が、子供のやる気を引き出す効果的な方法の一つです。 [2]
まとめ:プログラミングは、算数が好きになる魔法

Pythonのturtleを使えば、プログラミングの基本的な考え方である「命令の組み合わせ」や「繰り返し」を、お絵描きという楽しい体験を通して自然に学ぶことができます。 [15] そして、図形を描くという行為は、算数の「角度」や「多角形の性質」といった抽象的な概念を、具体的で分かりやすいものに変えてくれます。
最初はコードを真似して書くだけでも構いません。そこから少しずつ数字を変えてみたり、色を加えたりして、自分だけのオリジナル作品を作っていくうちに、子どもたちは創造力を働かせ、論理的に考える力を身につけていきます。turtleグラフィックスは、プログラミング学習の入り口として最適なだけでなく、算数や数学への興味の扉を開いてくれる素晴らしいツールです。 [16, 19] この記事を参考に、ぜひ親子でプログラミングと算数の世界を探検してみてください。