po-6. 繰り返し（ループ）トピックス： 繰り返し（ループ），for，in，ス
テップ実行（Python Tutor による演習）
URL: https://www.kkaneko.jp/pro/po/index.html（Python プログラミングの基本）

金子邦彦
1

物体の落下距離： 9.8 × (時間)2 ÷ 2
時間は 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10⇒ 同じ式の計算を 11 回繰り返し

Python プログラム

実行結果

2

全体まとめ• 処理の繰り返しにより，リストや辞書のすべての要素を処理できる• リストや辞書で処理の繰り返しを行うときは，forが便利である• for による繰り返し（ループ）
同じ処理や操作を繰り返す

3

アウトライン

6-1
6-2
6-3

項目
復習
リストと繰り返し（ループ）ステップ実行
辞書と繰り返し（ループ）4メソッドアクセス，代入
Python プログラムの例

x = 100
a = x + 200
enermy1 = hero.findNearestEnemy()
hero.attack(enemy1)• 代入：オブジェクト名 ＋ 「=」＋ 式または値またはメソッド呼び出し• メソッドアクセス：オブジェクト名 ＋ 「.」＋ メソッド名 ＋「()」 （引数を付けることも）Python プログラムでは，その他にも，属性アクセス，関数呼び出し，制御，「*」, 「+」などの演算子，コマンド，定義など

5

式の抽象化と関数，条件分岐，繰り返し（ループ）• 式の抽象化と関数• 条件分岐実行結果
x > 20 のときのみprint("big") が実行される
x ≦ 20 のときのみprint("small") が実行される• 繰り返し（ループ）
足し算の 5回繰り返し
0 + 1, 1 + 2, 3 + 3, 6 + 4, 10 + 5

6

リスト• リストは，同じ型の要素の並び• リストの要素には順序がある．０から始まる番号（添字）が付いている• リストは，要素の挿入，削除により，サイズが増減する
4 を末尾に挿入

8 の削除
7

辞書
• 辞書は，キーと値（バリュー）のペアの集まり• 辞書に，同じ値のキーは2回以上登場しない

4, "Orange" の削除

3 を "Black" に置き換え

8

Python Tutor の起動① ウェブブラウザを起動する② Python Tutor を使いたいので，次の URL を開く

http://www.pythontutor.com/③ 「Python」をクリック ⇒ 編集画面が開く

9

Python Tutor でのプログラム実行手順(1)「Visualize Execution」をクリックして実行画面に切り替える(2)「Last」をクリック．

(4)「Edit this code」をク(3) 実行結果を確認する．
リックして編集画面に戻る 10

Python Tutor 使用上の注意点①• 実行画面で，次のような赤の表示が出ることがある →無視してよい
過去の文法ミスに関する確認表示
邪魔なときは「Close」

11

Python Tutor 使用上の注意点②「please wait ... executing」のとき，１０秒ほど待つ．

混雑しているときは， 「Server Busy・・・」→というメッセージが出ることがある．

混雑している．少し（数秒から数十秒）待つと自動で表示が変わる（変わらない場合には，操作をもう一度行ってみる）

12

6-1. リストと繰り返し（ループ）13繰り返し（ループ）繰り返し（ループ）では，同じ処理や操作を繰り返す
物体の落下距離： 9.8 × (時間)2 ÷ 2
時間は 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10⇒ 同じ式の計算を 11 回繰り返し

Python プログラム
実行結果

14

繰り返しのプログラム例

x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for t in x:
print((9.8 / 2) * t * t)

リストの組み立て繰り返し

for t in x の直後に「:」（コロン）
字下げも正確に．
print((9.8 / 2) * t * t) の前に，「タブ」を 1つだけ

15

演習

資料：17 ～ 20

【トピックス】• for による繰り返し

16

① Python Tutor のエディタで次のプログラムを入れる
リストの要素を表示する

for i in aの直後に「:」

字下げも正確に！
print(i) の前に，「タブ (Tab)」を 1つだけ

17

② 実行し，結果を確認する

結果を確認「Visual Execution」をクリック．そして「Last」をクリック．結果を確認．
「Edit this code」をクリックすると，エディタの画面に戻る

18

③ Python Tutor のエディタで次のプログラムを入れる
物体の落下．0～10秒まで．1秒ごと

for t in xの直後に「:」

字下げも正確に！
print((9.8 / 2) * t * t) の前に，「タブ (Tab)」を 1つだけ
19

④ 実行し，結果を確認する

ここをドラッグすると，表示枠が広がる「Visual Execution」をクリック．そして「Last」をクリック．結果を確認．
「Edit this code」をクリックすると，エディタの画面に戻る

20

6-2. ステップ実行

21

繰り返しのプログラム例

実行結果

22

繰り返しのプログラム例
リストの組み立て「y[i] = x[i] * 1.1」をi の値を変えながら5回繰り返す

23

確認クイズ
次のプログラムで i の値はどのように変化するか？

i の値：

0 → 1 → 2 → 3 → 4「y[i] = x[i] * 1.1」をi の値を変えながら5回繰り返す

24

答え合わせ次のプログラムで i の値はどのように変化するか？

i の値：

0 → 1 → 2 → 3 → 4「y[i] = x[i] * 1.1」をi の値を変えながら5回繰り返す

25

Python Tutor でのステップ実行
ステップ実行により，プログラム実行の流れを確認できる

26

演習
資料：28 ～ 33
【トピックス】• Python Tutor でのステップ実行の操作• 変数の値の変化• 実行の流れの変化（ジャンプ）
27

① Python Tutor のエディタで次のプログラムを入れる
8, 6, 4, 2, 3 の 1.1 倍を求め，結果を別のリストに保存

for i in [0, 1, 2, 3, 4]の直後に「:」

字下げも正確に！ y[i] = x[i] * 1.1 とprint(y[i]) の前に，「タブ (Tab)」を 1つだけ28

② 「Visualize Execution」をクリックして，実行開始29

③ 実行し，結果を確認する

オブジェクト x は5 個の要素が入った
リスト

オブジェクト y は5 個の要素が入った
リスト

30

④「First」をクリックして，プログラム実行を先頭に戻す

31

⑤「Step 1 of 18」と表示されているので，全部で，ステップ数は 18 あることが分かる（ステップ数と，プログラムの行数は違うもの）

32

⑥ ステップ実行したいので，「Next」をクリックしながら，矢印の動きを確認※「Next」ボタンを何度か押し，それ以上進めなくなったら終了

見どころ
３行目，４行目、５行目が繰り返される

実行が進むと，y の中身が更新される

33

6-3. 辞書と繰り返し

34

辞書
辞書は，キーと値（バリュー）のペアの集まり

キー 値（バリュー）

35

繰り返しのプログラム例
辞書の組み立て辞書のキー 1, 2, 3 のそれぞれについて，値（バリュー）を表示

実行結果

36

演習

資料：38 ～ 39
【トピックス】• for による繰り返し（ループ）37

① Python Tutor のエディタで次のプログラムを入れる

for i in dの直後に「:」

字下げも正確に！
print(i) の前に，「タブ (Tab)」を 1つだけ38

② 実行し，結果を確認する「Visual Execution」をクリック．そして「Last」をクリック．結果を確認．
「Edit this code」をクリックすると，エディタの画面に戻る

39

全体まとめ• 処理の繰り返しにより，リストや辞書のすべての要素を処理できる• リストや辞書で処理の繰り返しを行うときは，forが便利である• for による繰り返し（ループ）
同じ処理や操作を繰り返す

40

Python 関連ページ• Python まとめページ
https://www.kkaneko.jp/tools/man/python.html• Python 入門（スライド資料とプログラム例）
https://www.kkaneko.jp/pro/pf/index.html• Python プログラミングの基本（スライド資料とプログラム例）
https://www.kkaneko.jp/pro/po/index.html• Python プログラム例
https://www.kkaneko.jp/pro/python/index.html• 人工知能の実行（Google Colaboratory を使用）
https://www.kkaneko.jp/ai/ni/index.html• 人工知能の実行（Python を使用）（Windows 上）
https://www.kkaneko.jp/ai/deepim/index.html

41