タートルグラフィックスで学ぶ Python のキホン 第 1 章
教材コード
第 1 章

自分のパソコンで Python を動かす

ブラウザの外へ.手元の PC でかめを歩かせます.

第 2 章からの教材は,ブラウザだけで動きます.何も入れなくても, ページを開いて「▶ 実行」を押せばかめが動きます.最初のうちはそれで十分です.

それでも,この章で自分のパソコンに Python を入れます. 理由は 3 つあります.第一に,本物の Python はブラウザより速く,制限がありません. 第二に,ここで作った作品を自分の PC に残せます. 第三に,そして一番大事なことですが,自分の道具を自分で用意できること自体が プログラミングの技能の一部だからです. 学び終わっても,この環境は皆さんの手元に残ります.

やることは多く見えますが,一度きりの作業です. 見出しには「必須」「あとでよい」の印が付いています. 1 コマの時間内は,1.1 から 1.9 とその次の演習までを順に進めてください. それより後ろは,困ったときに引く表(1.10 節)と,補足(1.11〜1.14 節)です. 上の「必須の節だけ表示する」にチェックを入れると,あとまわしの節は畳まれます.

この章でできるようになること
  • Miniconda を自分の PC に入れられる
  • conda の窓を開き,python --version で確かめられる
  • VS Code を入れ,拡張機能「Python」と日本語パックを追加できる
  • VS Code がどの Python を使っているかを確かめられる
  • 作業フォルダを開き,.py ファイルを作って実行できる
  • turtle のウィンドウを出し,done() の役目を説明できる
  • うまくいかないとき,エラーの文面から原因を切り分けられる
  • (補足)デバッガで好きな行に止め,変数の中身を見ながら1 行ずつ進められる
この章の進め方 この章だけは,自分の PC の画面が主役です. ほかの回と違って,このページにコードを動かす欄はありません. 書いてあるとおりに自分の PC を操作して,最後に手元でかめを動かすところまで行きます. 図の細部は,お使いの Windows や VS Code の版によって少し違います. それでも,押す場所は同じところにあります.
  • 図には実際の画面写真模式図が混ざっています.写真のうち VS Code の導入と拡張機能のものは,engineer.nus21.com の記事から掲載許諾を得て転載しています(この教材は学内限定の配布物です).
  • 「必須」の節だけなら,所要時間の目安は 40 分ほどです.ダウンロードの待ち時間が大半です.
  • 学校の PC では,すでに入っている場合があります.その場合は 1.4 節(VS Code の画面)から始めてください.
  • 途中で分からなくなったら,先へ進まずに手を挙げてください.環境の問題は,自力で悩むより聞いたほうが速く片付きます.

1.1 全体の見取り図必須

先に,これから何をするのかを見ておきます.入れるものは 2 つだけです. Miniconda(Python 本体)と VS Code(書くための道具)です.

① MinicondaPython 本体を自分の PC に入れる② VS CodePython 本体をconda で用意する③ 設定プログラムを書く道具を入れる④ 実行turtle の絵が手元の画面に出るこの 4 つがそろえば,教材のプログラムがそのまま手元で動きます
図 1.1 この章でやること.①で Python を,②で書く道具を用意し,③で組み合わせ,④で動かす.
入れるもの何をするものたとえるなら
MinicondaPython 本体と,環境を作り分ける道具 conda が入っているエンジン
VS Codeプログラムを書く・実行する・間違いを教えてくれる編集ソフト運転席
なぜ Miniconda なのか Python 本体だけなら公式サイト(python.org)からも入れられます. それでも Miniconda をすすめるのは, あとから用途ごとに Python を作り分けられるからです. その「作り分けたもの」を環境と呼びます. この教材では作り分けません.入れたままの状態 (base という名前の環境)をそのまま使います. 興味がある人は 1.12 節を見てください.
Anaconda と Miniconda Anaconda(アナコンダ)という似た名前のものがあります. こちらは最初から大量の道具が入っている「全部入り」版で,容量が数 GB あります. Miniconda は必要最小限の版です.この教材では Miniconda で足ります.

1.2 Miniconda を入れる必須

1.2.1 インストーラを落とす

ブラウザで https://www.anaconda.com/download/success を開き, ページの下のほうにある Miniconda Installers から, 自分の PC に合うものを選びます.

使っている PC選ぶファイル
Windows 11 / 10Miniconda3 Windows 64-bit.exe
Mac(M1/M2/M3/M4)Miniconda3 macOS Apple M1 64-bit pkg
Mac(2020 年以前の Intel)Miniconda3 macOS Intel x86 64-bit pkg
Mac のチップの見分け方 自分の Mac がどちらかは,画面左上のリンゴマーク → 「このマックについて」で分かります.「チップ Apple M〜」と書いてあれば Apple シリコン,「プロセッサ Intel〜」なら Intel です.

1.2.2 インストーラを進める

落としたファイルをダブルクリックして開きます. ほとんどの画面は「次へ」を押すだけです. 見ておくのは次の 2 か所だけです.

  1. インストール先の種類Just Me(自分だけ)を選びます.こちらのほうが後で権限のトラブルが起きません.
  2. Advanced Options:ここは何も変えずに「次へ」です.特に Add Miniconda3 to my PATH environment variable は,既定の「チェックなし」のままにしてください.
Miniconda3 セットアップAdvanced OptionsCreate shortcuts (supported packages only)Add Miniconda3 to my PATH environment variable← 既定は「チェックなし」.このままでよいRegister Miniconda3 as my default Python 3.12Clear the package cache upon completion戻るInstallキャンセル
図 1.2 Windows 版インストーラの Advanced Options.既定のまま先へ進む.
ここだけは触らない Add ... to my PATH にチェックを入れたくなりますが, 入れないでください.インストーラ自身が「推奨しない」と書いています. ここにチェックを入れると,すでに PC に入っている他の Python と取り合いになり, 「なぜかおかしな Python が動く」という,原因の分かりにくい不具合につながります.
チェックを入れなくても困りません.Anaconda Prompt という 専用の窓を使えば,そこでは condapython も使えます. VS Code からは,後で「インタープリタを選ぶ」ことで指定します.

1.2.3 conda を使う窓を開く

インストールが終わったら,命令を打ち込む窓を開きます. ここからしばらくは文字だけの画面です.

OS開き方
Windowsスタートメニューを開き,anaconda と打つと Anaconda Prompt (miniconda3) が出てくるので,それを開く
macOS「ターミナル」を開く(command + スペース → ターミナル と打つ)

開いた窓の行頭に (base) と付いていれば成功です. これは「いま base という環境にいます」という意味の名札です.

Mac で (base) が出ないとき macOS で (base) が出ないときは,Miniconda がターミナルに まだ登録されていません.次の 1 行を打って,いったんターミナルを閉じ,開き直してください.
macOS:シェルに conda を登録する
conda init zsh

1.3 VS Code を入れる必須

1.3.1 本体を入れる

Visual Studio Code(略して VS Code)は,Microsoft が無償で配っている プログラム編集ソフトです.https://code.visualstudio.com/ を開き, 大きな青いボタンからダウンロードします.

図 1.3 VS Code の配布ページ.青いダウンロードボタンを押す.
図 1.3 VS Code の配布ページ.青いダウンロードボタンを押す.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

押すと,どの版を落とすかの一覧が出ます. Windows を使っている人は Windows x64 ユーザーインストーラー を選んでください.「システムインストーラー」ではありません. ユーザーインストーラーは自分の領域だけに入るので,管理者の権限が要りません.

図 1.4 自分の環境に合うものを選ぶ.Windows なら「x64 ユーザーインストーラー」.
図 1.4 自分の環境に合うものを選ぶ.Windows なら「x64 ユーザーインストーラー」.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

落ちてきた VSCodeUserSetup-x64-….exe をダブルクリックすると, インストーラが始まります.最初に使用許諾の画面が出るので, 「同意する」を選んで「次へ」です.

図 1.5 使用許諾の画面.「同意する」を選んで先へ進む.
図 1.5 使用許諾の画面.「同意する」を選んで先へ進む.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

このあと,インストール先とスタートメニューの名前を聞かれますが, どちらも既定のまま「次へ」で構いません. 「追加タスクの選択」だけ,「デスクトップ上にアイコンを作成する」に チェックを入れておくと,後で探しやすくなります.

図 1.6 追加タスクの選択.デスクトップアイコンだけ付けておくとよい.
図 1.6 追加タスクの選択.デスクトップアイコンだけ付けておくとよい.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

あとは「インストール」を押して待つだけです. 終わりの画面で「完了」を押すと,VS Code が立ち上がります.

図 1.7 インストール完了.「完了」を押すと VS Code が起動する.
図 1.7 インストール完了.「完了」を押すと VS Code が起動する.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
Mac の場合 macOS の場合は,落ちてきた Visual Studio Code.app「アプリケーション」フォルダへドラッグするだけです. ダウンロードフォルダに置いたまま使うと,後で行方不明になります.

1.3.2 メニューを日本語にする

初回起動のときにテーマ(配色)を聞かれます.好きなほうを選んでください. この教材の図は明るいテーマと暗いテーマが混ざっていますが, 配色が違うだけで,押す場所は同じです.

次に,メニューを日本語にします.VS Code の左端のアイコン列 (アクティビティバー)から「機能拡張」を開き, 検索欄に japanese と打ちます. 出てきた Japanese Language Pack for Visual Studio CodeInstall を押してください.

図 1.8 機能拡張で japanese を検索し,Japanese Language Pack を入れる.
図 1.8 機能拡張で japanese を検索し,Japanese Language Pack を入れる.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

インストールが終わると,画面の右下に Change Language and Restart というボタンが出ます. これを押すと VS Code が再起動します.

図 1.9 右下に出るボタンを押すと,言語を切り替えて再起動する.
図 1.9 右下に出るボタンを押すと,言語を切り替えて再起動する.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
図 1.10 再起動後.メニューが日本語になっている.
図 1.10 再起動後.メニューが日本語になっている.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
日本語にならないとき このボタンが出てこないときは,いったん VS Code を閉じて開き直してください. それでも英語のままなら,コマンドパレット (Ctrl + Shift + P)で Configure Display Language と打ち,日本語 (ja) を選びます.

1.3.3 Python の拡張機能を入れる

VS Code は,そのままでは「ただの高機能メモ帳」です. Python の拡張機能を足して,はじめて Python を扱えるようになります. こちらは必須です.

拡張機能作者何のため
PythonMicrosoft実行ボタン,エラーの指摘,インタープリタの選択など.必須
Japanese Language PackMicrosoftメニューを日本語にする(1.3.2 で入れたもの)

入れ方は日本語パックとまったく同じです. 押す場所を先に模式図で確かめておきましょう.

VS Code拡張機能① 四角が 4 つのアイコンpython② ここに名前を打ち込むPythonMicrosoftインストールJapanese Language PackMicrosoftインストールPylanceMicrosoftインストール③ 「インストール」を押すだけ入れるのはこの 2 つ・Python(Microsoft 製)・Japanese Language Pack日本語化のあとはVS Code を閉じて開き直す拡張機能は VS Code の中から探して入れます(ブラウザは使いません)
図 1.11 拡張機能を入れる 3 手順.① 左端のアイコン → ② 名前で検索 → ③ インストール.

では実際の画面です.まず,左端のアクティビティバーから 「機能拡張」を開きます.

図 1.12 左端のアクティビティバーから「機能拡張」を開く.
図 1.12 左端のアクティビティバーから「機能拡張」を開く.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

検索欄に python と打ち, 一覧のいちばん上に出る Microsoft 製の Python を選びます. 似た名前のものがたくさん並びますが, 作者が Microsoft のものを選べば間違いありません.

図 1.13 python で検索し,Microsoft 製のものを選ぶ.
図 1.13 python で検索し,Microsoft 製のものを選ぶ.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
図 1.14 インストールが終わったら,この説明の画面は「×」で閉じてよい.
図 1.14 インストールが終わったら,この説明の画面は「×」で閉じてよい.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
一緒に入るもの Python を入れると Pylance が一緒に入ります. これは「書いている途中で間違いを教えてくれる」係です. 消さずにそのままにしておいてください.

1.4 VS Code の画面を知る必須

1.4.1 画面は 4 つの区画に分かれている

ここで一度,画面の見方を覚えます. どこに何があるかが分かっていれば,この先の説明で迷いません.

house.py - pro1 - Visual Studio CodeエクスプローラーPRO1house.pystar.pymyart.pyhouse.py1from turtle import *23lt(60)4fd(100)5rt(120)6fd(100)78done()ターミナル問題 出力 デバッグコンソール(base) ...\pro1>python house.pybaseUTF-8 Python 3.12.4 ('base': conda)アクティビティバーサイドバー(フォルダの中身)エディタ(ここに書く)パネル(ターミナル)右下のステータスバーに,いま選ばれている Python が出ます
図 1.15 VS Code の画面.4 つの区画とステータスバーの位置を覚える.
場所名前役目
左端の細い縦列アクティビティバーサイドバーに何を出すかを切り替える.上から順に,ファイル一覧・検索・バージョン管理・実行・拡張機能
その右の縦長の区画サイドバー開いているフォルダの中身が並ぶ.ファイル名をクリックすると開く
まん中の広い区画エディタプログラムを書くところ.上のタブで複数のファイルを切り替える
下の区画パネル(ターミナル)実行結果とエラーが出る.自分で命令を打つこともできる
いちばん下の青い帯ステータスバー右側に選ばれている Python文字コードが出る.ここは何度も見ることになる

1.5 どの Python で動くかを確かめる必須

1 台の PC には,いくつもの Python が入り得ます. いま入れた Miniconda の Python,Windows に最初から入っている別の Python, 前に入れた別の Python — VS Code はそのどれで動かせばよいかを, 1 つ選んで覚えています.その選ばれている 1 つを確かめるだけの節です.

プログラムを動かす Python 本体のことを,インタープリタといいます. 「(人間の言葉を)通訳する人」という意味です. 皆さんが書いた fd(100) を,コンピュータに分かる形へ 1 行ずつ通訳していくので,この名前が付いています.

.py ファイルを開いた状態で,画面右下のステータスバーを見てください. 3.12.4 ('base': conda) のような表示があれば,それでおしまいです. 次の節へ進んでください.

ちがっていたときだけ 表示が見当たらない,あるいは ('base': conda) でない (たとえば Microsoft Store や別の Python になっている)ときだけ, 次の手順で選び直します.
  1. Ctrl + Shift + P を押します(Mac は command + Shift + P).画面の上から細長い入力欄が下りてきます.これをコマンドパレットといいます.
  2. Python: Select Interpreter と打ちます.全部打つ必要はなく,select int くらいで候補に出てきます.日本語版では「Python: インタープリターを選択」と表示されます.
  3. 候補の一覧から ('base': conda) と書かれたものを選びます(1.12 節で環境を分けた人は,その名前のものを選びます).
候補にひとつも conda の Python が出てこないときは,コマンドパレットで Developer: Reload Window(「開発者: ウィンドウの再読み込み」)を 実行するか,VS Code を開き直してください.
>Python: Select InterpreterPython 3.12.4 ('base': conda)~\miniconda3\python.exePython 3.12.7 ('pro1': conda)~\miniconda3\envs\pro1\python.exeインタープリターのパスを入力...この教材で使うのはこれ① キーボードでCtrl + Shift + P(Mac は command+Shift+P)② Select Interpreter と打つ③ base を選ぶ「どの Python でプログラムを動かすか」をここで決めます
図 1.16 コマンドパレットからインタープリタを選ぶ.base と書かれたものを選ぶ.
一度選べば覚えてくれる インタープリタの選択は,開いているフォルダごとに覚えられます. だから,作業フォルダで一度選んでおけば, 次に同じフォルダを開いたときは選び直す必要がありません. 別のフォルダを開いたときは,また確かめることになります.

1.6 作業フォルダを開いて .py を作る必須

1.6.1 フォルダを 1 つ決める

まず,この教材のファイルを置く場所を決めます. ドキュメントの中に pro1 という名前のフォルダを 1 つ作ってください.Mac なら「書類」の中です.

OS置き場所
WindowsC:\Users\(自分の名前)\Documents\pro1
macOS/Users/(自分の名前)/Documents/pro1
名前と置き場所 フォルダ名とファイル名は,半角英数字にしてください. 日本語やスペースが入っていると,ターミナルから扱うときに面倒が増えます. また,OneDrive や iCloud で同期される場所は避けるほうが無難です. 同期の途中でファイルが読めず,実行に失敗することがあります.

1.6.2 「フォルダーを開く」で開く

VS Code のメニューから「ファイル」→「フォルダーを開く...」を選び, いま作った pro1 フォルダを開きます. すぐ上にある「ファイルを開く...」ではありません.

ファイル 編集 表示 ...新しいテキストファイルファイルを開く...× これではないフォルダーを開く...○ こちらを選ぶ名前を付けて保存...自動保存pro1 - Visual Studio CodeエクスプローラーPRO1house.pystar.pymyart.pyフォルダごと開くと,中のファイルが一覧で見えますファイル 1 個ではなく,作業フォルダごと開くのが要点です
図 1.17 ファイル 1 個ではなく,フォルダごと開く.
なぜフォルダごと開くのか ここは初めての人がほぼ必ず間違えるところです. VS Code は,「いま開いているフォルダ」を仕事場と考えて動きます. フォルダを開いておくと,
  • サイドバーにファイルが一覧で並び,クリックで行き来できる
  • ターミナルの現在位置が自動的にそのフォルダになるので,python house.py がそのまま通る
  • 選んだインタープリタを,そのフォルダの設定として覚えてくれる
ファイルを 1 個だけ開くと,この 3 つが全部効きません. 「実行できない」の原因の何割かは,これです.

初めて開くと「このフォルダー内のファイルの作成者を信頼しますか?」と聞かれます. 自分で作ったフォルダなので,「はい,作成者を信頼します」を選んでください.

1.6.3 .py ファイルを作る

サイドバーの PRO1 という見出しに マウスを載せると,アイコンがいくつか出ます. いちばん左の「新しいファイル」を押して, ファイル名を house.py と打ち,Enter を押します.

拡張子と,付けてはいけない名前 .py という末尾を必ず付けてください. この末尾(拡張子)で,VS Code は「これは Python だ」と判断します. 付け忘れると色が付かず,▷ の実行ボタンも出ません. また,ファイル名を turtle.py にしてはいけません. Python 本体の turtle と名前がぶつかり, かえって turtle が読めなくなります(1.10 節参照).

1.7 実行する必須

house.py に,第 2 章で出てくる家のプログラムを書き写してみましょう. 第 2 章以降のページでは,同じプログラムをブラウザでも動かせます. 先にブラウザで動かして,同じものを手元に書き写すとよいでしょう.

house.py
# 家を描く
# 名前:
# 日付:

from turtle import *

# 屋根
lt(60)
fd(100)
rt(120)
fd(100)
rt(120)
fd(100)

# かべ
lt(90)
fd(100)
lt(90)
fd(100)
lt(90)
fd(100)
lt(90)
fd(100)

done()

書けたら,必ず保存します(Ctrl + S, Mac は command + S). タブのファイル名の横に白い丸が付いているうちは未保存です. 保存していない状態で実行すると,前の内容が動いて混乱します.

実行の方法は 3 つあります.どれでも結果は同じです.

やり方操作特徴
実行ボタンエディタ右上の ▷ を押すいちばん簡単.ターミナルが自動で開き,環境も自動で切り替わる
キーボードCtrl + F5(Mac は control + F5▷ と同じ.手を動かさずに済む
ターミナル下のターミナルに python house.py と打つ何が起きているかが見える.本当はこれが実体
house.py① 右上の ▷(実行)を押す = Ctrl + F51# 家を描く2from turtle import *34lt(60)5fd(100)6rt(120)7fd(100)89done()ターミナル(base) C:\Users\ohmi\Documents\pro1>python house.py② ターミナルに自分で打ってもよい(結果は同じ)▷ を押す前に,必ず Ctrl + S で保存してください
図 1.18 実行ボタンの位置と,ターミナルから打つ場合.
ターミナルの行頭を見る ターミナルの行頭が (base) になっていることを確かめてください. 何も付いていないときは,インタープリタの選択(1.5 節)が効いていません. ターミナルをいったん閉じて(ごみ箱のアイコン),開き直すと反映されます. ここで conda : 用語 'conda' は…認識されません と赤い字が出た人は, 1.11 節を読んでください.▷ で動いているなら,そのままで構いません.

1.8 turtle が動くか確かめる必須

1.8.1 turtle は入れなくてよい

turtle は Python に最初から付いてくる道具です (標準ライブラリといいます). pip installconda install は要りません. from turtle import * と書けば,それだけで使えます.

ただし turtle は,裏で tkinter という「窓を出す道具」を使っています. tkinter は,さらに tk という部品を必要とします. Miniconda の Windows 版には tk が同梱されているので, ふつうは何もしなくても動きます.

pip install turtle はしない turtle を探して pip install turtle と打ちたくなりますが, 絶対にやらないでください. PyPI(pip が探しに行く置き場)には turtle という名前の まったく別の,20 年近く前に放置された壊れたパッケージがあります. インストールは失敗しますし,運悪く入ってしまうと, 本物の標準ライブラリの turtle が隠れて 今まで動いていたプログラムが動かなくなります
やってはいけない
pip install turtle     # ← やらない
turtle が見つからない」と言われたときの原因は,ほぼ 自分のファイルに turtle.py と名前を付けてしまったか, Python の選び間違い(1.5 節)です.入れ直しでは直りません.
まず出ませんが,窓が出ないときは まれに,実行すると ModuleNotFoundError: No module named '_tkinter' と出ることがあります. tk が足りていない,という意味です. Anaconda Prompt で conda install tk と打てば入ります (環境を分けていない人は,そのまま打つだけで構いません).

1.8.2 done() を書く理由

ここまでの教材では,プログラムの最後に必ず done() を書いてきました. その理由が,やっと回収できます.

.py ファイルとして実行された Python は, 最後の行まで行ったら,そこで終わります. 終わると,開いていたタートルのウィンドウも一緒に消えます. つまり,絵は描かれた瞬間に消えるのです.

done() は,「ユーザーがウィンドウを閉じるまで,ここで待つ」という命令です. これを書いておけば,描き終わった絵をゆっくり眺められます.

done() を書かないとPython Turtle Graphics出た瞬間に閉じてしまうdone() を書くとPython Turtle Graphics閉じるまで絵が残る教材のプログラムが毎回 done() で終わっているのは,このためです
図 1.19 done() の有無で,ウィンドウが残るかどうかが変わる.
ブラウザと手元の違い ブラウザの演習環境では,done() が無くても絵は消えません. 仕組みが違うからです. しかし手元で実行すると,はっきり違いが出ます. 教材のプログラムが毎回 done() で終わっているのは, どちらでも同じように動くようにするためでした. 最後の done() は,書く習慣にしてください.

次の 2 つの虫食いで,「1 行目」と「最後の行」を自分の手で埋めてみましょう. 手元の .py に書き写して,実際に動かして確かめてください.

虫食い虫食い 1-A 最初の 1 行

正方形を描くプログラムです.____ を 2 か所埋めてください. 1 つめはタートルの道具箱を開ける言葉, 2 つめは正方形の 1 辺の長さです.

fill1_first.py
____ turtle import *

pensize(4)
pencolor("crimson")

fd(120)
rt(90)
fd(____)
rt(90)
fd(120)
rt(90)
fd(120)
rt(90)

done()
虫食い虫食い 1-B 最後の 2 行

階段を描くプログラムです.最後の 2 つの ____ を埋めてください. 1 つめはかめの姿を消す命令, 2 つめはウィンドウを閉じずに残す命令です.

ヒント どちらも引数がないので,名前() のように, かっこの中は空のまま書きます.
fill1_last.py
from turtle import *

pensize(3)
pencolor("teal")

fd(60)
lt(90)
fd(60)
rt(90)
fd(60)
lt(90)
fd(60)
rt(90)
fd(60)
lt(90)
fd(60)

____()
____()

1.9 この教材のプログラムを手元で動かす必須

第 2 章以降の教材ページには,コードを動かす欄と 「⤓ 保存」というボタンがあります. 押すと,いま書いているコードが .py ファイルとして ダウンロードされます.これを作業フォルダに移せば,手元でそのまま動きます.

① 教材ページ⤓ 保存を押す② ダウンロードhouse.pyが PC に落ちる③ 移すドキュメント\pro1へ入れる④ 実行VS Code で開き▷ を押すブラウザで書いたプログラムが,そのまま手元の Python で動きます
図 1.20 教材で書いたプログラムを手元で動かすまでの流れ.
  1. 教材ページのコード欄で,動くところまで作る.
  2. 「⤓ 保存」を押す.「ダウンロード」フォルダに .py が落ちる.
  3. それを ドキュメント\pro1 へ移す(ドラッグでよい).
  4. VS Code のサイドバーに現れるので,クリックして開く.
  5. を押す.ブラウザと同じ絵が,自分の PC の窓に出る.
行き来できる 逆向きもできます.手元で書いた .py をエディタで開き, 逆に,手元で書いたプログラムも,中身をコピーして教材ページのコード欄に 貼り付ければ,ブラウザでそのまま動きます. 同じコードが両方で動くことが,この教材の設計方針です. ただし,第 10 章以降で出てくる一部の命令は,動きが少し違います. そのつど断ります.

演習必須

この章の演習は,作品を作るものではありません. 手を動かして,1 つずつ確かめるチェックリストです. 全部に印が付いたら,環境構築は完了です.

演習演習 1-1 環境ができたかの確認

次の項目を上から順に確かめ,全部できたら完了です. 1 つでも引っかかったら,その節に戻ってください.

  • □ Anaconda Prompt(Mac はターミナル)を開くと,行頭に (base) が出る
  • □ Anaconda Prompt で python --version を打つとPython 3.12 のように出る
  • python --versionPython 3.12.x と答える
  • □ VS Code が日本語で表示されている
  • □ 拡張機能の一覧に Python がある
  • □ VS Code の右下に ('base': conda) と出ている
  • □ 下のプログラムを square.py として手元に書き, で実行すると窓が開いて正方形が出る
  • □ その窓は,自分で閉じるまで消えない
ヒント 最後の 2 つが,この章の到達点です. ここまで来たら,あとは第 2 章に進むだけです. 教材はブラウザで読み進め,気に入ったプログラムは手元に持ち帰って動かせます.
square.py
# 動作確認:正方形
# 名前:
# 日付:

from turtle import *

pensize(4)
pencolor("royalblue")

fd(120)
rt(90)
fd(120)
rt(90)
fd(120)
rt(90)
fd(120)
rt(90)

ht()
done()
演習演習 1-2 done() を消してみる

手元で次のことを試し,違いを自分の目で確かめてください. ブラウザではこの違いは出ません.自分の PC でやる演習です.

  1. 下のプログラムを done_test.py という名前で作業フォルダに作る.
  2. で実行する.三角形の窓が出て,そのまま残ることを確かめる.
  3. 最後の done() の行を消す(または行頭に # を付けてコメントにする).保存してからもう一度実行する.
  4. 窓がどうなったかを見る.一瞬だけ光って消えたはずです.
  5. done() を戻して,また残ることを確かめる.
  • done() ありで,窓が残った
  • done() なしで,窓がすぐ消えた
  • □ なぜそうなるのかを,自分の言葉で説明できる
見分けがつかないとき 手が速すぎて「消えた」のか「そもそも出なかった」のか分からないときは, ターミナルから python done_test.py と打って実行し, エラーが出ていないことを確かめてください. エラーが出ずに終わっていれば,「出てすぐ消えた」が正解です.
done_test.py
# done() のはたらきを確かめる

from turtle import *

pensize(5)
pencolor("darkorange")

fd(140)
rt(120)
fd(140)
rt(120)
fd(140)
rt(120)

ht()
done()        # ← この行を消して実行し,違いを見る
持ち帰り演習 1-3 保存して,手元で動かす

教材で書いたプログラムを,手元へ持ち帰る練習です(1.9 節の流れ). 下のプログラムを少しだけ自分好みに変えてから, 「⤓ 保存」で落とし,作業フォルダに置いて実行してください.

  1. 第 2 章以降の教材ページで好きなプログラムを開き,色・太さ・大きさを変えてみる.
  2. 「⤓ 保存」を押して,.py をダウンロードする.
  3. ドキュメント\pro1 へ移す.
  4. VS Code のサイドバーに出てきたら,クリックして開く.
  5. を押して,ブラウザと同じ絵が出ることを確かめる.
  • □ ダウンロードした .py が作業フォルダにある
  • □ VS Code のサイドバーにファイル名が見えている
  • □ 実行すると,ブラウザで見たのと同じ絵が自分の PC の窓に出る
  • □ 先頭のコメントに,自分の名前と日付を書いた
作品として残す 作品として残しておくと,あとで見返せます. 手元で実行したときの画面の写真(スクリーンショット)を 求めることがあります.Windows は Windows + Shift + S,Mac は command + Shift + 4 で撮れます.
ex1_3_takehome.py
# 手元で動かす練習
# 名前:
# 日付:

from turtle import *

pensize(3)
pencolor("seagreen")

# 好きなように変えてよい
fd(120)
rt(144)
fd(120)
rt(144)
fd(120)
rt(144)
fd(120)
rt(144)
fd(120)
rt(144)

ht()
done()

まとめ必須

  • 入れるのは Miniconda(Python 本体)と VS Code(書く道具)の 2 つだけ.
  • インストーラの Add ... to PATH既定のまま.触らないのが正解.
  • 環境は入れたまま(base)で使う.用途ごとに分けたくなったら 1.12 節(補足).
  • VS Code には拡張機能 PythonJapanese Language Pack を入れる.
  • どの Python で動くか右下のステータスバーで確かめる.ちがっていたら Ctrl + Shift + PPython: Select Interpreterbase
  • ファイル 1 個ではなく,作業フォルダごと「フォルダーを開く」.
  • 実行は Ctrl + F5python ファイル名.py の 3 通り.実行前に保存
  • turtle は標準ライブラリなので追加インストール不要.窓が出なければ conda install tk
  • done() を最後に書く.書かないと,描いた絵が一瞬で消える.
  • 困ったら,エラーの最後の行を読む.1.10 節の表から同じ文面を探す.
  • (補足)思ったとおりに動かないときはデバッガ(1.13 節).行番号の左をクリックしてブレークポイントF5 で止め,F10 で 1 行ずつ進め,変数の中身を見る.

ここから先は,またブラウザに戻ります. 第 2 章では,かめに「進め」「曲がれ」と命令して,最初の絵を描きます. そこで書くプログラムは,今日作った環境でもそのまま動きます. 気が向いたら,手元でも動かしてみてください.

この先について この章の本編はここまでです.この下には, つまずいたときに引く困ったときの一覧(1.10 節)と, 時間があるときに読む補足(1.11〜1.14 節)が続きます.

1.10 困ったときの一覧困ったとき

環境のトラブルは,種類が決まっています. エラーの文面をそのまま読むことが,解決への最短経路です. 下の表から,同じ文面を探してください.

1.10.1 Python が見つからない・環境が違う

環境まわり
症状(出る文面)原因直し方
'python' は,内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。その窓に Python の場所が知らされていない.ふつうのコマンドプロンプトを開いた,または環境を切り替えていないAnaconda Prompt を使う.VS Code なら 1.5 節のインタープリタ選択をやり直し,ターミナルを開き直す
conda : 用語 'conda' は、コマンドレット、関数、…として認識されません。PowerShell が conda 用に準備されていない(VS Code の既定のターミナルが PowerShell)既定のターミナルをコマンドプロンプトに変える(1.11 節).または Anaconda Prompt で conda init powershell を 1 回打つ
zsh: command not found: conda(Mac)ターミナルに Miniconda が登録されていないconda init zsh を打ち,ターミナルを開き直す
▷ を押すと,思っていない Python が動くインタープリタが conda のものになっていない右下のステータスバーを見る.('base': conda) でなければ 1.5 節をやり直す
python: can't open file '…house.py': [Errno 2] No such file or directoryターミナルのいる場所と,ファイルのある場所が違う「フォルダーを開く」で作業フォルダを開き直す(1.6 節).または cd でその場所へ移動する

1.10.2 turtle が動かない

turtle まわり
症状(出る文面)原因直し方
ModuleNotFoundError: No module named 'turtle'自分のファイルに turtle.py という名前を付けた.自分のファイルが本物を隠してしまっているファイル名を house.py などに変える.同じフォルダに __pycache__ があれば,それも消す
ModuleNotFoundError: No module named '_tkinter'窓を出す部品 tk が環境に入っていないAnaconda Prompt で conda install tk
ウィンドウが一瞬だけ出て,すぐ消える最後の done() が無いプログラムの最後に done() を書く(1.8 節)
ウィンドウが真っ白なまま固まるdone() のあとにも命令が続いている,または途中で入力待ちになっているdone()いちばん最後に書く.固まったら,ターミナルで Ctrl + C で止める
直したはずなのに,前と同じ結果が出る保存していないCtrl + S で保存してから実行.「ファイル」→「自動保存」を有効にしておくと確実
NameError: name 'fd' is not defined1 行目の from turtle import * を書き忘れている1 行目に書き足す
SyntaxError: invalid characterコードの中に全角の記号が混じっている()や全角スペースを半角に直す.日本語入力を切ってから書く(1.14 節)
ターミナルの出力だけ日本語が化けるWindows のターミナルの文字コードが UTF-8 でないターミナルで chcp 65001 と打つ(1.14 節)
質問するときのコツ どうしても直らないときは,エラーの最後の 2 行を そのまま書き写して持ってきてください. エラーは長く見えますが,大事なのは最後です. 最後の行に「何が起きたか」,その 1 つ上に「どこで起きたか」が書いてあります.

ここから先は補足です

ここから下は,1 コマの時間内にやらなくてよいものばかりです. 必要になったとき,あるいは自分のパソコンで長く使いたくなったときに読んでください.

1.11 補足:ターミナルを出す・種類を変える(Windows)あとでよい

つまずいた人だけ この小節は,飛ばしてかまいません. プログラムを動かすのは ボタンで,そのままで動きます. ターミナルに自分で打ちたくなったときや, conda : 用語 'conda' は…認識されません と赤い字が出たときに読んでください.

ターミナルが見当たらないときは,メニューの 「ターミナル」→「新しいターミナル」で出せます. キーボードなら Ctrl + Shift + @ (Mac は control + Shift + @)です.

図 1.21 メニューの「ターミナル」→「新しいターミナル」で下の区画が開く.
図 1.21 メニューの「ターミナル」→「新しいターミナル」で下の区画が開く.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

Windows では,このターミナルの中身が既定で PowerShell になっています. PowerShell は,準備をしていないと conda の命令を受け付けません. conda : 用語 'conda' は…認識されません と赤い字が出た人は, コマンドプロンプトに変えておくと,この面倒がなくなります.

ターミナルの右上にある (下向きの矢印)を押し, 「既定のプロファイルの選択」を選びます.

図 1.22 ターミナル右上の下向き矢印から「既定のプロファイルの選択」を開く.
図 1.22 ターミナル右上の下向き矢印から「既定のプロファイルの選択」を開く.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

一覧が出てくるので,Command Prompt を選びます.

図 1.23 一覧から Command Prompt を選ぶ.
図 1.23 一覧から Command Prompt を選ぶ.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)

設定を変えても,いま開いているターミナルには反映されません. ターミナル右上のごみ箱のアイコンで一度閉じ, もう一度「新しいターミナル」を開いてください. 行頭の表示が PS C:\…> から C:\…> に変わっていれば成功です.

図 1.24 開き直したターミナル.PowerShell からコマンドプロンプトに変わっている.
図 1.24 開き直したターミナル.PowerShell からコマンドプロンプトに変わっている.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
Mac の場合 macOS では,この作業は要りません.ターミナルは最初から zsh で,conda init zsh を済ませてあれば conda も動きます.
PowerShell のまま使いたい人へ PowerShell のまま使いたい人は,Anaconda Prompt で conda init powershell を 1 回だけ打てば, PowerShell でも conda が使えるようになります. どちらでも構いませんが,迷ったらコマンドプロンプトにしてください.

1.12 補足:学習用の環境を分けるあとでよい

いまは要りません この節は飛ばしてかまいません. この教材では,入れたばかりの Miniconda をそのまま(base のまま)使います. ここから先の説明も,すべて base で進める前提で書いてあります.

それでも環境を分けたくなるのは,同じパソコンで別の用途にも Python を使うときです. 学習用・研究用・実験用をそれぞれ独立させておけば,片方をいじって片方が壊れる, という事故が起きません.その作り分けたものを環境と呼びます. 自分のパソコンで長く使うつもりなら,いずれこのやり方が要ります.

この節をやった人は,このあと出てくる base を, 自分が作った名前(pro1)に読み替えてください.

次に,学習専用の Python を作ります.名前は pyturtle にします. 先ほど開いた窓に,次の 1 行を打って Enter を押してください.

学習用の環境を作る
conda create -n pro1 python=3.12
書いた部分意味
conda環境を管理する道具の名前
create新しく作る,という指示
-n pro1名前(name)を pro1 にするpro1 は「プログラミングI」のつもりです
python=3.12入れる Python の版を 3.12 に指定する

途中で Proceed ([y]/n)? と聞かれます. 「このまま進めていいですか」という確認なので,y と打って Enter です.1 分ほどで終わります.

できあがったら,作った環境に切り替えます.

環境を切り替える
conda activate pro1

行頭の名札が (base) から (pro1) に 変われば成功です.ここから打つ命令は,すべて pro1 の Python に届きます.

Anaconda Prompt (miniconda3)(base) C:\Users\ohmi>conda create -n pro1 python=3.12Proceed ([y]/n)? ydone(base) C:\Users\ohmi>conda activate pro1(pro1) C:\Users\ohmi>python --versionPython 3.12.7この印が pro1 に変わったら,切り替え成功です
図 1.25 環境を作って切り替えるまで.行頭の名札が (base) から (pro1) に変わる.

最後に,本当に 3.12 が入ったかを確かめます.

版を確かめる
python --version

Python 3.12.x のように出れば完成です(x は細かい番号なので いくつでも構いません).

conda の命令はこの 4 つ 覚えておく命令はこれだけです.
命令意味
conda create -n 名前 python=3.12環境を新しく作る(最初の 1 回だけ)
conda activate pro1その環境に切り替える
conda deactivate元(base)に戻る
conda env list作った環境の一覧を見る
毎回 activate が要るのか conda activate の効果は,その窓を閉じるまでです. 次に窓を開いたときは,また (base) から始まります. そのたびに conda activate pro1 が要ります. — と言っても,VS Code で使うぶんには,1.5 節で 一度インタープリタを選んでおけば,VS Code が自動でやってくれます

1.13 補足:1 行ずつ動かして中を見る(デバッガ)あとでよい

ここまでで,プログラムを一気に実行できるようになりました. ところが,思ったとおりに動かないときは,一気に動かしても何も分かりません. 絵が出ない.数が合わない.けれどもエラーは出ない. どこまでは正しくて,どこから間違ったのかが知りたいのです.

そのための道具がデバッガです. VS Code には最初から付いています.今日入れた道具の中で, いちばん長く使うことになる道具なので,ここで顔だけ見ておきましょう.

ブラウザの教材ページにはありません この節の作業は,手元の VS Code でやることです. 第 2 章からの教材ページはブラウザの中で動いているので, デバッガはありません. 教材で書いたプログラムを 1.9 節のやり方で手元に持ち帰れば, そのままデバッガにかけられます.

1.13.1 print で調べるのとどう違うか

値を確かめたいだけなら,print を書き足すやり方もあります. 実際,よく使います.ただし,調べ終わったら全部消して回る必要があります.

print を書き足すデバッガを使う
プログラムを直すか直す(あとで消す手間がいる)直さない(そのまま動かす)
見られるものprint に書いたものだけそのときある変数が全部見える
止められるか止まらない.全部流れていく好きな行で止められる
進め方もう一度はじめから実行し直す止めたところから1 行ずつ進められる

つまりデバッガは,止めて,中を覗いて,1 行ずつ進めるための道具です. この 3 つだけ覚えておけば,今日のところは十分です.

1.13.2 ブレークポイントを置く

まず,止めたい行を決めます. エディタで,その行の行番号の左をクリックしてください. 赤い丸が付きます.これをブレークポイントといいます.

pass.py - pro1 - Visual Studio Codepass.py1# 合格かどうかを判定する2score = 583limit = 6045if score >= limit:6 print("合格")7else:8 print("不合格")① 行番号のをクリック赤い丸が付きます= ブレークポイントここで実行が止まりますもう一度クリックすると消えます.いくつ置いてもかまいません
図 1.26 行番号の左をクリックすると,赤い丸が付く.
どこに置くか もう一度クリックすれば消えます.いくつ置いてもかまいません. 置き場所に迷ったら,「ここまでは合っているはず」と思う行に置きます. そこで値が思ったとおりなら,間違いはその先にあります.

1.13.3 F5 で動かし,止まったところを見る

ブレークポイントを置いたら,F5 を押します (メニューなら「実行」→「デバッグの開始」). 最初だけ「デバッガーの選択」と聞かれることがあります. その場合は Python Debugger →「Python ファイル」を選んでください.

プログラムはブレークポイントの行の手前まで進んで止まります. 画面が次のように変わります.

pass.py - pro1 - Visual Studio Code実行とデバッグ∨ 変数∨ ローカルscore: 58limit: 60pass.py1# 合格かどうかを判定する2score = 583limit = 6045if score >= limit:6 print("合格")7else:8 print("不合格")③ いま止まっている行② 止まっている間は,変数の中身がそのまま見えます黄色い行は「これから実行する行」です.まだ実行されていません
図 1.27 止まっているところ.左の「変数」に,いまの中身が出ている.
  • 止まっている行が黄色になります.この行はこれから実行する行で,まだ実行されていません.
  • 左側が「実行とデバッグ」に変わり,変数のところに,いま生きている名前と中身が並びます.
  • 変数の上にマウスを置くと,エディタの中でも中身が出ます.
変数は第 3 章で習います score = 58 のように,名前に数を入れる書き方を 変数といいます.くわしくは第 3 章で習いますので, いまは「名前の箱に数が入っている」とだけ思ってください. デバッガは,その箱の中身を見せてくれる道具です.

1.13.4 覚えるボタンは 4 つだけ

止まると,画面の上のほうに小さなボタンの列が出ます. たくさんありますが,当面使うのは 4 つだけです.

続行F5ステップオーバーF10ステップインF11ステップアウトShift + F11再起動停止Shift + F5青い 4 つだけ覚えれば足ります.残りは,しばらく使いません止まっている間だけ,画面の上に出てきます
図 1.28 止まっている間だけ出るボタンの列.青い 4 つを覚える.
ボタンキー何が起きるかいつ使うか
ステップオーバーF101 行だけ実行して,次の行で止まるふだんはこれ.とにかく F10 を押していく
ステップインF11その行が他のまとまりを呼んでいるなら,その中へ入る第 13 章で自分の関数を作ってから使う
続行F5次のブレークポイントまで,一気に進めるもう 1 行ずつ見なくてよくなったとき
停止Shift + F5その場で終わらせる途中でやめたいとき
F10 と F11 F10F11 の違いは,いまは気にしなくてかまいません. F10 を押していれば,まず困りませんF11 がありがたくなるのは,第 13 章で自分の関数を作ってからです.
止めたら,必ず終わらせる 止めたまま放っておくと,プログラムは終わりません. turtle のウィンドウが固まったように見えたら, 止まっているだけかもしれません. F5(続行)か Shift + F5(停止)で片付けてください.

1.13.5 使いどころ — 値が思っていたものと違う

デバッガがいちばん効くのは,条件のところです. 「この条件は成り立つはずなのに,成り立っていない」というとき, その行にブレークポイントを置いて,変数の中身を自分の目で見ます

  1. 条件の行(if … の行)にブレークポイントを置く.
  2. F5 で実行する.その行で止まる.
  3. 左の変数を見る.
  4. 思っていた値と違っていたら,間違いはその行ではなくもっと手前にある.
  5. 手前の行にブレークポイントを移して,同じことをくり返す.

図 1.27 の例では,score58 でした. 60 のつもりだったのなら,間違っているのは if の行ではなく, score に値を入れた行です. 1 行ずつ追って,値の変化を見る. バグ探しは,結局これに尽きます.

バグとデバッグ プログラムの間違いをバグ,それを取り除く作業を デバッグといいます.デバッガは,その作業を助ける道具という意味です. プログラムは書く時間より,直す時間のほうが長いものです. だから,直すための道具を先に覚えておくと,あとがずいぶん楽になります.
練習デバッガで 1 行ずつ追う

step.py という名前で次のプログラムを作り, 1 行ずつ動かしてください. 絵を描くプログラムなので,1 行進めるたびに,かめが 1 手ずつ動くのが 目で見えます.

  1. fd(length) の行(下の # の付いた行)の行番号の左をクリックして,赤い丸を付ける.
  2. F5 を押す.その行で止まり,行が黄色くなる.
  3. 左の変数length が出ていることを確かめる(100 のはずです).
  4. F101 回押すごとに,かめが 1 手だけ動くのを見る.正方形が 1 辺ずつできていきます.
  5. 飽きたら F5(続行)で最後まで動かす.
ヒント length = 100length = 40 に書き換えて, もう一度 F5 で止めてみてください. 変数のところの数も変わっているはずです. プログラムの中の数と,止まったときに見える数が 同じものだと分かれば,この節は卒業です.
step.py
# 1 行ずつ追う練習
# 名前:
# 日付:

from turtle import *

length = 100

pensize(3)
pencolor("teal")

fd(length)      # ← この行の左に,ブレークポイントを置く
lt(90)
fd(length)
lt(90)
fd(length)
lt(90)
fd(length)
lt(90)

ht()
done()

1.14 補足:日本語と文字コードあとでよい

プログラムのコメントには日本語を書きます. ところが,文字を数字に置き換える決まり(文字コード)が 書いたときと読むときで食い違うと,文字化けが起こります.

決まりはひとつです.ファイルは UTF-8 で保存する. Python 3 は,ソースファイルが UTF-8 で書かれている前提で読みます. VS Code も,新しく作ったファイルは UTF-8 で保存します. つまりふつうに使っていれば問題は起きません

確かめ方は簡単です.右下のステータスバーに, いま開いているファイルの文字コードが出ています. ここが UTF-8 なら大丈夫です.

症状原因直し方
エディタの中で日本語が化けているファイルが Shift_JIS などで保存されている(古いファイルをもらった場合など)右下の文字コード表示を押す →「エンコード付きで再度開く」で Shift JIS を選び,正しく読めたら,もう一度押して「エンコード付きで保存」→ UTF-8
エディタでは正しいが,ターミナルの出力だけ化けるWindows のターミナルの文字コードが UTF-8 でないターミナルで chcp 65001 と打つ.毎回なら,既定のターミナルをコマンドプロンプトに変える(1.11 節)
SyntaxError: invalid character と出るコードの中に全角の記号が混じっている()や全角スペースを半角に直す.日本語入力を切ってから書く
よく見かける謎の 1 行 # -*- coding: utf-8 -*- という 1 行を見たことがあるかもしれません. これは Python 2 の時代に必要だった呪文で, Python 3 では書かなくてよいものです. 書いてあっても害はありません.