自分のパソコンで 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 行ずつ進められる
- 図には実際の画面写真と模式図が混ざっています.写真のうち VS Code の導入と拡張機能のものは,engineer.nus21.com の記事から掲載許諾を得て転載しています(この教材は学内限定の配布物です).
- 「必須」の節だけなら,所要時間の目安は 40 分ほどです.ダウンロードの待ち時間が大半です.
- 学校の PC では,すでに入っている場合があります.その場合は 1.4 節(VS Code の画面)から始めてください.
- 途中で分からなくなったら,先へ進まずに手を挙げてください.環境の問題は,自力で悩むより聞いたほうが速く片付きます.
1.1 全体の見取り図必須
先に,これから何をするのかを見ておきます.入れるものは 2 つだけです. Miniconda(Python 本体)と VS Code(書くための道具)です.
| 入れるもの | 何をするもの | たとえるなら |
|---|---|---|
| Miniconda | Python 本体と,環境を作り分ける道具 conda が入っている | エンジン |
| VS Code | プログラムを書く・実行する・間違いを教えてくれる編集ソフト | 運転席 |
base という名前の環境)をそのまま使います.
興味がある人は 1.12 節を見てください.
1.2 Miniconda を入れる必須
1.2.1 インストーラを落とす
ブラウザで https://www.anaconda.com/download/success を開き,
ページの下のほうにある Miniconda Installers から,
自分の PC に合うものを選びます.
| 使っている PC | 選ぶファイル |
|---|---|
| Windows 11 / 10 | Miniconda3 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 |
1.2.2 インストーラを進める
落としたファイルをダブルクリックして開きます. ほとんどの画面は「次へ」を押すだけです. 見ておくのは次の 2 か所だけです.
- インストール先の種類:
Just Me(自分だけ)を選びます.こちらのほうが後で権限のトラブルが起きません. - Advanced Options:ここは何も変えずに「次へ」です.特に
Add Miniconda3 to my PATH environment variableは,既定の「チェックなし」のままにしてください.
Add ... to my PATH にチェックを入れたくなりますが,
入れないでください.インストーラ自身が「推奨しない」と書いています.
ここにチェックを入れると,すでに PC に入っている他の Python と取り合いになり,
「なぜかおかしな Python が動く」という,原因の分かりにくい不具合につながります.
チェックを入れなくても困りません.Anaconda Prompt という 専用の窓を使えば,そこでは
conda も python も使えます.
VS Code からは,後で「インタープリタを選ぶ」ことで指定します.
1.2.3 conda を使う窓を開く
インストールが終わったら,命令を打ち込む窓を開きます. ここからしばらくは文字だけの画面です.
| OS | 開き方 |
|---|---|
| Windows | スタートメニューを開き,anaconda と打つと Anaconda Prompt (miniconda3) が出てくるので,それを開く |
| macOS | 「ターミナル」を開く(command + スペース → ターミナル と打つ) |
開いた窓の行頭に (base) と付いていれば成功です.
これは「いま base という環境にいます」という意味の名札です.
(base) が出ないときは,Miniconda がターミナルに
まだ登録されていません.次の 1 行を打って,いったんターミナルを閉じ,開き直してください.
conda init zsh
1.3 VS Code を入れる必須
1.3.1 本体を入れる
Visual Studio Code(略して VS Code)は,Microsoft が無償で配っている
プログラム編集ソフトです.https://code.visualstudio.com/ を開き,
大きな青いボタンからダウンロードします.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
押すと,どの版を落とすかの一覧が出ます.
Windows を使っている人は Windows x64 ユーザーインストーラー
を選んでください.「システムインストーラー」ではありません.
ユーザーインストーラーは自分の領域だけに入るので,管理者の権限が要りません.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
落ちてきた VSCodeUserSetup-x64-….exe をダブルクリックすると,
インストーラが始まります.最初に使用許諾の画面が出るので,
「同意する」を選んで「次へ」です.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
このあと,インストール先とスタートメニューの名前を聞かれますが, どちらも既定のまま「次へ」で構いません. 「追加タスクの選択」だけ,「デスクトップ上にアイコンを作成する」に チェックを入れておくと,後で探しやすくなります.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
あとは「インストール」を押して待つだけです. 終わりの画面で「完了」を押すと,VS Code が立ち上がります.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
Visual Studio Code.app を
「アプリケーション」フォルダへドラッグするだけです.
ダウンロードフォルダに置いたまま使うと,後で行方不明になります.
1.3.2 メニューを日本語にする
初回起動のときにテーマ(配色)を聞かれます.好きなほうを選んでください. この教材の図は明るいテーマと暗いテーマが混ざっていますが, 配色が違うだけで,押す場所は同じです.
次に,メニューを日本語にします.VS Code の左端のアイコン列
(アクティビティバー)から「機能拡張」を開き,
検索欄に japanese と打ちます.
出てきた Japanese Language Pack for Visual Studio Code の
Install を押してください.
japanese を検索し,Japanese Language Pack を入れる.出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
インストールが終わると,画面の右下に
Change Language and Restart というボタンが出ます.
これを押すと VS Code が再起動します.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
Ctrl + Shift + P)で
Configure Display Language と打ち,日本語 (ja) を選びます.
1.3.3 Python の拡張機能を入れる
VS Code は,そのままでは「ただの高機能メモ帳」です. Python の拡張機能を足して,はじめて Python を扱えるようになります. こちらは必須です.
| 拡張機能 | 作者 | 何のため |
|---|---|---|
| Python | Microsoft | 実行ボタン,エラーの指摘,インタープリタの選択など.必須 |
| Japanese Language Pack | Microsoft | メニューを日本語にする(1.3.2 で入れたもの) |
入れ方は日本語パックとまったく同じです. 押す場所を先に模式図で確かめておきましょう.
では実際の画面です.まず,左端のアクティビティバーから 「機能拡張」を開きます.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
検索欄に python と打ち,
一覧のいちばん上に出る Microsoft 製の Python を選びます.
似た名前のものがたくさん並びますが,
作者が Microsoft のものを選べば間違いありません.
python で検索し,Microsoft 製のものを選ぶ.出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
Python を入れると Pylance が一緒に入ります.
これは「書いている途中で間違いを教えてくれる」係です.
消さずにそのままにしておいてください.
1.4 VS Code の画面を知る必須
1.4.1 画面は 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 になっている)ときだけ,
次の手順で選び直します.
Ctrl+Shift+Pを押します(Mac はcommand+Shift+P).画面の上から細長い入力欄が下りてきます.これをコマンドパレットといいます.Python: Select Interpreterと打ちます.全部打つ必要はなく,select intくらいで候補に出てきます.日本語版では「Python: インタープリターを選択」と表示されます.- 候補の一覧から
('base': conda)と書かれたものを選びます(1.12 節で環境を分けた人は,その名前のものを選びます).
Developer: Reload Window(「開発者: ウィンドウの再読み込み」)を
実行するか,VS Code を開き直してください.
1.6 作業フォルダを開いて .py を作る必須
1.6.1 フォルダを 1 つ決める
まず,この教材のファイルを置く場所を決めます.
ドキュメントの中に pro1 という名前のフォルダを
1 つ作ってください.Mac なら「書類」の中です.
| OS | 置き場所 |
|---|---|
| Windows | C:\Users\(自分の名前)\Documents\pro1 |
| macOS | /Users/(自分の名前)/Documents/pro1 |
1.6.2 「フォルダーを開く」で開く
VS Code のメニューから「ファイル」→「フォルダーを開く...」を選び,
いま作った pro1 フォルダを開きます.
すぐ上にある「ファイルを開く...」ではありません.
- サイドバーにファイルが一覧で並び,クリックで行き来できる
- ターミナルの現在位置が自動的にそのフォルダになるので,
python house.pyがそのまま通る - 選んだインタープリタを,そのフォルダの設定として覚えてくれる
初めて開くと「このフォルダー内のファイルの作成者を信頼しますか?」と聞かれます. 自分で作ったフォルダなので,「はい,作成者を信頼します」を選んでください.
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 章以降のページでは,同じプログラムをブラウザでも動かせます.
先にブラウザで動かして,同じものを手元に書き写すとよいでしょう.
# 家を描く # 名前: # 日付: 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 と打つ | 何が起きているかが見える.本当はこれが実体 |
(base) になっていることを確かめてください.
何も付いていないときは,インタープリタの選択(1.5 節)が効いていません.
ターミナルをいったん閉じて(ごみ箱のアイコン),開き直すと反映されます.
ここで conda : 用語 'conda' は…認識されません と赤い字が出た人は,
1.11 節を読んでください.▷ で動いているなら,そのままで構いません.
1.8 turtle が動くか確かめる必須
1.8.1 turtle は入れなくてよい
turtle は Python に最初から付いてくる道具です
(標準ライブラリといいます).
pip install や conda install は要りません.
from turtle import * と書けば,それだけで使えます.
ただし turtle は,裏で tkinter
という「窓を出す道具」を使っています.
tkinter は,さらに tk という部品を必要とします.
Miniconda の Windows 版には tk が同梱されているので,
ふつうは何もしなくても動きます.
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() が無くても絵は消えません.
仕組みが違うからです.
しかし手元で実行すると,はっきり違いが出ます.
教材のプログラムが毎回 done() で終わっているのは,
どちらでも同じように動くようにするためでした.
最後の done() は,書く習慣にしてください.
次の 2 つの虫食いで,「1 行目」と「最後の行」を自分の手で埋めてみましょう.
手元の .py に書き写して,実際に動かして確かめてください.
正方形を描くプログラムです.____ を 2 か所埋めてください. 1 つめはタートルの道具箱を開ける言葉, 2 つめは正方形の 1 辺の長さです.
____ turtle import *
pensize(4)
pencolor("crimson")
fd(120)
rt(90)
fd(____)
rt(90)
fd(120)
rt(90)
fd(120)
rt(90)
done()
階段を描くプログラムです.最後の 2 つの ____ を埋めてください. 1 つめはかめの姿を消す命令, 2 つめはウィンドウを閉じずに残す命令です.
名前() のように,
かっこの中は空のまま書きます.
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 ファイルとして
ダウンロードされます.これを作業フォルダに移せば,手元でそのまま動きます.
- 教材ページのコード欄で,動くところまで作る.
- 「⤓ 保存」を押す.「ダウンロード」フォルダに
.pyが落ちる. - それを
ドキュメント\pro1へ移す(ドラッグでよい). - VS Code のサイドバーに現れるので,クリックして開く.
- ▷ を押す.ブラウザと同じ絵が,自分の PC の窓に出る.
.py をエディタで開き,
逆に,手元で書いたプログラムも,中身をコピーして教材ページのコード欄に
貼り付ければ,ブラウザでそのまま動きます.
同じコードが両方で動くことが,この教材の設計方針です.
ただし,第 10 章以降で出てくる一部の命令は,動きが少し違います.
そのつど断ります.
演習必須
この章の演習は,作品を作るものではありません. 手を動かして,1 つずつ確かめるチェックリストです. 全部に印が付いたら,環境構築は完了です.
次の項目を上から順に確かめ,全部できたら完了です. 1 つでも引っかかったら,その節に戻ってください.
- □ Anaconda Prompt(Mac はターミナル)を開くと,行頭に
(base)が出る - □ Anaconda Prompt で
python --versionを打つとPython 3.12のように出る - □
python --versionがPython 3.12.xと答える - □ VS Code が日本語で表示されている
- □ 拡張機能の一覧に Python がある
- □ VS Code の右下に
('base': conda)と出ている - □ 下のプログラムを
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()
手元で次のことを試し,違いを自分の目で確かめてください. ブラウザではこの違いは出ません.自分の PC でやる演習です.
- 下のプログラムを
done_test.pyという名前で作業フォルダに作る. - ▷ で実行する.三角形の窓が出て,そのまま残ることを確かめる.
- 最後の
done()の行を消す(または行頭に#を付けてコメントにする).保存してからもう一度実行する. - 窓がどうなったかを見る.一瞬だけ光って消えたはずです.
done()を戻して,また残ることを確かめる.
- □
done()ありで,窓が残った - □
done()なしで,窓がすぐ消えた - □ なぜそうなるのかを,自分の言葉で説明できる
python 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.9 節の流れ). 下のプログラムを少しだけ自分好みに変えてから, 「⤓ 保存」で落とし,作業フォルダに置いて実行してください.
- 第 2 章以降の教材ページで好きなプログラムを開き,色・太さ・大きさを変えてみる.
- 「⤓ 保存」を押して,
.pyをダウンロードする. ドキュメント\pro1へ移す.- VS Code のサイドバーに出てきたら,クリックして開く.
- ▷ を押して,ブラウザと同じ絵が出ることを確かめる.
- □ ダウンロードした
.pyが作業フォルダにある - □ VS Code のサイドバーにファイル名が見えている
- □ 実行すると,ブラウザで見たのと同じ絵が自分の PC の窓に出る
- □ 先頭のコメントに,自分の名前と日付を書いた
Windows + Shift +
S,Mac は command + Shift +
4 で撮れます.
# 手元で動かす練習
# 名前:
# 日付:
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 には拡張機能 Python と Japanese Language Pack を入れる.
- どの Python で動くかは右下のステータスバーで確かめる.ちがっていたら
Ctrl+Shift+P→Python: Select Interpreter→base. - ファイル 1 個ではなく,作業フォルダごと「フォルダーを開く」.
- 実行は ▷/
Ctrl+F5/python ファイル名.pyの 3 通り.実行前に保存. turtleは標準ライブラリなので追加インストール不要.窓が出なければconda install tk.done()を最後に書く.書かないと,描いた絵が一瞬で消える.- 困ったら,エラーの最後の行を読む.1.10 節の表から同じ文面を探す.
- (補足)思ったとおりに動かないときはデバッガ(1.13 節).行番号の左をクリックしてブレークポイント,
F5で止め,F10で 1 行ずつ進め,変数の中身を見る.
ここから先は,またブラウザに戻ります. 第 2 章では,かめに「進め」「曲がれ」と命令して,最初の絵を描きます. そこで書くプログラムは,今日作った環境でもそのまま動きます. 気が向いたら,手元でも動かしてみてください.
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 が動かない
| 症状(出る文面) | 原因 | 直し方 |
|---|---|---|
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 defined | 1 行目の from turtle import * を書き忘れている | 1 行目に書き足す |
SyntaxError: invalid character | コードの中に全角の記号が混じっている | (),”や全角スペースを半角に直す.日本語入力を切ってから書く(1.14 節) |
| ターミナルの出力だけ日本語が化ける | Windows のターミナルの文字コードが UTF-8 でない | ターミナルで chcp 65001 と打つ(1.14 節) |
ここから先は補足です
ここから下は,1 コマの時間内にやらなくてよいものばかりです. 必要になったとき,あるいは自分のパソコンで長く使いたくなったときに読んでください.
1.11 補足:ターミナルを出す・種類を変える(Windows)あとでよい
▷ ボタンで,そのままで動きます.
ターミナルに自分で打ちたくなったときや,
conda : 用語 'conda' は…認識されません と赤い字が出たときに読んでください.
ターミナルが見当たらないときは,メニューの
「ターミナル」→「新しいターミナル」で出せます.
キーボードなら Ctrl + Shift + @
(Mac は control + Shift + @)です.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
Windows では,このターミナルの中身が既定で
PowerShell になっています.
PowerShell は,準備をしていないと conda の命令を受け付けません.
conda : 用語 'conda' は…認識されません と赤い字が出た人は,
コマンドプロンプトに変えておくと,この面倒がなくなります.
ターミナルの右上にある ∨(下向きの矢印)を押し,
「既定のプロファイルの選択」を選びます.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
一覧が出てくるので,Command Prompt を選びます.
Command Prompt を選ぶ.出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
設定を変えても,いま開いているターミナルには反映されません.
ターミナル右上のごみ箱のアイコンで一度閉じ,
もう一度「新しいターミナル」を開いてください.
行頭の表示が PS C:\…> から C:\…> に変わっていれば成功です.
出典: Python の開発環境を VS Code で構築する(engineer.nus21.com)(掲載許諾済み)
zsh で,conda init zsh を済ませてあれば
conda も動きます.
conda init powershell を 1 回だけ打てば,
PowerShell でも conda が使えるようになります.
どちらでも構いませんが,迷ったらコマンドプロンプトにしてください.
1.12 補足:学習用の環境を分けるあとでよい
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 に届きます.
最後に,本当に 3.12 が入ったかを確かめます.
python --version
Python 3.12.x のように出れば完成です(x は細かい番号なので
いくつでも構いません).
| 命令 | 意味 |
|---|---|
conda create -n 名前 python=3.12 | 環境を新しく作る(最初の 1 回だけ) |
conda activate pro1 | その環境に切り替える |
conda deactivate | 元(base)に戻る |
conda env list | 作った環境の一覧を見る |
conda activate の効果は,その窓を閉じるまでです.
次に窓を開いたときは,また (base) から始まります.
そのたびに conda activate pro1 が要ります.
— と言っても,VS Code で使うぶんには,1.5 節で
一度インタープリタを選んでおけば,VS Code が自動でやってくれます.
1.13 補足:1 行ずつ動かして中を見る(デバッガ)あとでよい
ここまでで,プログラムを一気に実行できるようになりました. ところが,思ったとおりに動かないときは,一気に動かしても何も分かりません. 絵が出ない.数が合わない.けれどもエラーは出ない. どこまでは正しくて,どこから間違ったのかが知りたいのです.
そのための道具がデバッガです. VS Code には最初から付いています.今日入れた道具の中で, いちばん長く使うことになる道具なので,ここで顔だけ見ておきましょう.
1.13.1 print で調べるのとどう違うか
値を確かめたいだけなら,print を書き足すやり方もあります.
実際,よく使います.ただし,調べ終わったら全部消して回る必要があります.
print を書き足す | デバッガを使う | |
|---|---|---|
| プログラムを直すか | 直す(あとで消す手間がいる) | 直さない(そのまま動かす) |
| 見られるもの | print に書いたものだけ | そのときある変数が全部見える |
| 止められるか | 止まらない.全部流れていく | 好きな行で止められる |
| 進め方 | もう一度はじめから実行し直す | 止めたところから1 行ずつ進められる |
つまりデバッガは,止めて,中を覗いて,1 行ずつ進めるための道具です. この 3 つだけ覚えておけば,今日のところは十分です.
1.13.2 ブレークポイントを置く
まず,止めたい行を決めます. エディタで,その行の行番号の左をクリックしてください. 赤い丸が付きます.これをブレークポイントといいます.
1.13.3 F5 で動かし,止まったところを見る
ブレークポイントを置いたら,F5 を押します
(メニューなら「実行」→「デバッグの開始」).
最初だけ「デバッガーの選択」と聞かれることがあります.
その場合は Python Debugger →「Python ファイル」を選んでください.
プログラムはブレークポイントの行の手前まで進んで止まります. 画面が次のように変わります.
- 止まっている行が黄色になります.この行はこれから実行する行で,まだ実行されていません.
- 左側が「実行とデバッグ」に変わり,変数のところに,いま生きている名前と中身が並びます.
- 変数の上にマウスを置くと,エディタの中でも中身が出ます.
score = 58 のように,名前に数を入れる書き方を
変数といいます.くわしくは第 3 章で習いますので,
いまは「名前の箱に数が入っている」とだけ思ってください.
デバッガは,その箱の中身を見せてくれる道具です.
1.13.4 覚えるボタンは 4 つだけ
止まると,画面の上のほうに小さなボタンの列が出ます. たくさんありますが,当面使うのは 4 つだけです.
| ボタン | キー | 何が起きるか | いつ使うか |
|---|---|---|---|
| ステップオーバー | F10 | 1 行だけ実行して,次の行で止まる | ふだんはこれ.とにかく F10 を押していく |
| ステップイン | F11 | その行が他のまとまりを呼んでいるなら,その中へ入る | 第 13 章で自分の関数を作ってから使う |
| 続行 | F5 | 次のブレークポイントまで,一気に進める | もう 1 行ずつ見なくてよくなったとき |
| 停止 | Shift + F5 | その場で終わらせる | 途中でやめたいとき |
F10 と F11 の違いは,いまは気にしなくてかまいません.
F10 を押していれば,まず困りません.
F11 がありがたくなるのは,第 13 章で自分の関数を作ってからです.
F5(続行)か Shift + F5(停止)で片付けてください.
1.13.5 使いどころ — 値が思っていたものと違う
デバッガがいちばん効くのは,条件のところです. 「この条件は成り立つはずなのに,成り立っていない」というとき, その行にブレークポイントを置いて,変数の中身を自分の目で見ます.
- 条件の行(
if …の行)にブレークポイントを置く. F5で実行する.その行で止まる.- 左の変数を見る.
- 思っていた値と違っていたら,間違いはその行ではなくもっと手前にある.
- 手前の行にブレークポイントを移して,同じことをくり返す.
図 1.27 の例では,score が 58 でした.
60 のつもりだったのなら,間違っているのは if の行ではなく,
score に値を入れた行です.
1 行ずつ追って,値の変化を見る.
バグ探しは,結局これに尽きます.
step.py という名前で次のプログラムを作り,
1 行ずつ動かしてください.
絵を描くプログラムなので,1 行進めるたびに,かめが 1 手ずつ動くのが
目で見えます.
fd(length)の行(下の#の付いた行)の行番号の左をクリックして,赤い丸を付ける.F5を押す.その行で止まり,行が黄色くなる.- 左の変数に
lengthが出ていることを確かめる(100のはずです). F10を1 回押すごとに,かめが 1 手だけ動くのを見る.正方形が 1 辺ずつできていきます.- 飽きたら
F5(続行)で最後まで動かす.
length = 100 を length = 40 に書き換えて,
もう一度 F5 で止めてみてください.
変数のところの数も変わっているはずです.
プログラムの中の数と,止まったときに見える数が
同じものだと分かれば,この節は卒業です.
# 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 と出る | コードの中に全角の記号が混じっている | (),”や全角スペースを半角に直す.日本語入力を切ってから書く |
# -*- coding: utf-8 -*- という 1 行を見たことがあるかもしれません.
これは Python 2 の時代に必要だった呪文で,
Python 3 では書かなくてよいものです.
書いてあっても害はありません.