SlideShare a Scribd company logo
1 of 41
1
po-6. 繰り返し(ルー
プ)
金子邦彦
トピックス: 繰り返し(ループ),for,in,ス
テップ実行(Python Tutor による演習)
URL: https://www.kkaneko.jp/pro/po/index.html
(Python プログラミングの基本)
2
物体の落下距離: 9.8 × (時間)2 ÷ 2
時間は 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
⇒ 同じ式の計算を 11 回繰り返し
Python プログラム
実行結果
全体まとめ
• 処理の繰り返しにより,リストや辞書のすべての
要素を処理できる
• リストや辞書で処理の繰り返しを行うときは,for
が便利である
• for による繰り返し(ループ)
同じ処理や操作を繰り返す
3
アウトライン
4
項目
復習
6-1 リストと繰り返し(ループ)
6-2 ステップ実行
6-3 辞書と繰り返し(ループ)
メソッドアクセス,代入
• 代入:オブジェクト名 + 「=」
+ 式または値またはメソッド呼び出し
• メソッドアクセス:オブジェクト名 + 「.」
+ メソッド名 +「()」 (引数を付けることも)
5
x = 100
a = x + 200
enermy1 = hero.findNearestEnemy()
hero.attack(enemy1)
Python プログラムの例
Python プログラムでは,その他にも,属性アクセス,関数
呼び出し,制御,「*」, 「+」などの演算子,コマンド,
定義など
式の抽象化と関数,条件分岐,繰り返し
(ループ)
• 式の抽象化と関数
• 条件分岐
• 繰り返し(ループ)
6
実行結果
x > 20 のときのみ
print("big") が実行される
x ≦ 20 のときのみ
print("small") が実行される
足し算の 5回繰り返し
0 + 1, 1 + 2, 3 + 3, 6 + 4, 10 + 5
リスト
• リストは,同じ型の要素の並び
• リストの要素には順序がある.0から始まる番号
(添字)が付いている
• リストは,要素の挿入,削除により,サイズが増
減する
7
4 を末尾に挿入
8 の削除
辞書
• 辞書は,キーと値(バリュー)のペアの集まり
• 辞書に,同じ値のキーは2回以上登場しない
8
4, "Orange" の削除 3 を "Black" に置き換え
Python Tutor の起動
① ウェブブラウザを起動する
② Python Tutor を使いたいので,次の URL を開く
http://www.pythontutor.com/
③ 「Python」をクリック ⇒ 編集画面が開く
9
Python Tutor でのプログラム実行手順
10
(1)「Visualize Execution」をク
リックして実行画面に切り替える
(2)「Last」をクリック.
(3) 実行結果を確認する.
(4)「Edit this code」をク
リックして編集画面に戻る
Python Tutor 使用上の注意点①
• 実行画面で,次のような赤の表示が出ることがある
→ 無視してよい
過去の文法ミスに関する確認表示
邪魔なときは「Close」
11
Python Tutor 使用上の注意点②
「please wait ... executing」のとき,10秒ほど待つ.
→ 混雑しているときは, 「Server Busy・・・」
というメッセージが出ることがある.
混雑している.少し(数秒から数十秒)待つと自
動で表示が変わる(変わらない場合には,操作を
もう一度行ってみる)
12
6-1. リストと繰り返し(ループ)
13
繰り返し(ループ)
繰り返し(ループ)では,同じ処理や操作を繰
り返す
14
物体の落下距離: 9.8 × (時間)2 ÷ 2
時間は 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
⇒ 同じ式の計算を 11 回繰り返し
Python プログラム
実行結果
繰り返しのプログラム例
15
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つだけ
リストの組み立て
繰り返し
演習
資料:17 ~ 20
【トピックス】
• for による繰り返し
16
① Python Tutor のエディタで次のプログラムを入
れる
17
字下げも正確に!
print(i) の前に,「タブ (Tab)」を 1つだけ
for i in a
の直後に「:」
リストの要素を表示する
② 実行し,結果を確認する
18
「Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
「Edit this code」をクリックすると,エディタの画面に戻る
結果を確認
③ Python Tutor のエディタで次のプログラムを入
れる
19
字下げも正確に!
print((9.8 / 2) * t * t) の前に,「タブ (Tab)」を 1つだけ
for t in x
の直後に「:」
物体の落下.0~10秒まで.1秒ごと
④ 実行し,結果を確認する
20
「Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
「Edit this code」をクリックすると,エディタの画面に戻る
ここをドラッグすると,
表示枠が広がる
6-2. ステップ実行
21
繰り返しのプログラム例
22
実行結果
繰り返しのプログラム例
23
リストの
組み立て
「y[i] = x[i] * 1.1」を
i の値を変えながら
5回繰り返す
確認クイズ
次のプログラムで i の値はどのように変化するか?
24
i の値: 0 → 1 → 2 → 3 → 4
「y[i] = x[i] * 1.1」を
i の値を変えながら
5回繰り返す
答え合わせ
次のプログラムで i の値はどのように変化するか?
25
i の値: 0 → 1 → 2 → 3 → 4
「y[i] = x[i] * 1.1」を
i の値を変えながら
5回繰り返す
Python Tutor でのステップ実行
ステップ実行により,プログラム実行の流れ
を確認できる
26
演習
資料:28 ~ 33
【トピックス】
• Python Tutor でのステップ実
行の操作
• 変数の値の変化
• 実行の流れの変化(ジャン
プ)
27
① Python Tutor のエディタで次のプログラムを入
れる
28
字下げも正確に! y[i] = x[i] * 1.1 と
print(y[i]) の前に,「タブ (Tab)」を 1つだけ
for i in [0, 1, 2, 3, 4]
の直後に「:」
8, 6, 4, 2, 3 の 1.1 倍を求め,結果を別のリストに保存
② 「Visualize Execution」をクリックして,実
行開始
29
③ 実行し,結果を確認する
30
オブジェクト x は
5 個の要素が入った
リスト
オブジェクト y は
5 個の要素が入った
リスト
④「First」をクリックして,プログラム実行を
先頭に戻す
31
⑤「Step 1 of 18」と表示されているので,
全部で,ステップ数は 18 あることが分かる
(ステップ数と,プログラムの行数は違うもの)
32
⑥ ステップ実行したいので,「Next」をクリック
しながら,矢印の動きを確認
※「Next」ボタンを何度か押し,それ以上進めな
くなったら終了
33
見どころ
3行目,4行目、5行目が
繰り返される
実行が進むと,
y の中身が更新される
6-3. 辞書と繰り返し
34
辞書
辞書は,キーと値(バリュー)のペアの集まり
35
キー 値(バリュー)
繰り返しのプログラム例
36
辞書の
組み立て
辞書のキー 1, 2, 3 のそれぞれに
ついて,値(バリュー)を表示
実行結果
演習
資料:38 ~ 39
【トピックス】
• for による繰り返し(ルー
プ)
37
① Python Tutor のエディタで次のプログラムを入
れる
38
字下げも正確に!
print(i) の前に,「タブ (Tab)」を 1つだけ
for i in d
の直後に「:」
② 実行し,結果を確認する
39
「Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
「Edit this code」をクリックすると,エディタの画面に戻る
全体まとめ
• 処理の繰り返しにより,リストや辞書のすべての
要素を処理できる
• リストや辞書で処理の繰り返しを行うときは,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

More Related Content

Similar to po-6. 繰り返し実行(ループ),ステップ実行

「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12Takanori Suzuki
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementationsmasahitojp
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialTatsuya Tojima
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpythonSoudai Sone
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
Tokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテストTokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテストYohei Sato
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateepocketberserker
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)Yoshifumi Yamaguchi
 
cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行kunihikokaneko1
 
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章YOSHIKAWA Ryota
 
S02 t2 my_historyofpythonlearning
S02 t2 my_historyofpythonlearningS02 t2 my_historyofpythonlearning
S02 t2 my_historyofpythonlearningTakeshi Akutsu
 
po-2. Python プログラミングの基本
po-2. Python プログラミングの基本po-2. Python プログラミングの基本
po-2. Python プログラミングの基本kunihikokaneko1
 

Similar to po-6. 繰り返し実行(ループ),ステップ実行 (20)

Rの高速化
Rの高速化Rの高速化
Rの高速化
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpython
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
Tokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテストTokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテスト
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIteratee
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
 
cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行
 
2023_freshman
2023_freshman2023_freshman
2023_freshman
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
 
S02 t2 my_historyofpythonlearning
S02 t2 my_historyofpythonlearningS02 t2 my_historyofpythonlearning
S02 t2 my_historyofpythonlearning
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
po-2. Python プログラミングの基本
po-2. Python プログラミングの基本po-2. Python プログラミングの基本
po-2. Python プログラミングの基本
 

More from kunihikokaneko1

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い kunihikokaneko1
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション kunihikokaneko1
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスkunihikokaneko1
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要 kunihikokaneko1
 
cs-4. プログラミング入門
cs-4. プログラミング入門cs-4. プログラミング入門
cs-4. プログラミング入門kunihikokaneko1
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスkunihikokaneko1
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 kunihikokaneko1
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタkunihikokaneko1
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンkunihikokaneko1
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線kunihikokaneko1
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システムkunihikokaneko1
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニングkunihikokaneko1
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習kunihikokaneko1
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例kunihikokaneko1
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要kunihikokaneko1
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について kunihikokaneko1
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承kunihikokaneko1
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しkunihikokaneko1
 

More from kunihikokaneko1 (20)

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンス
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要
 
cs-4. プログラミング入門
cs-4. プログラミング入門cs-4. プログラミング入門
cs-4. プログラミング入門
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョン
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニング
 
mi-4. 機械学習
mi-4. 機械学習mi-4. 機械学習
mi-4. 機械学習
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要
 
kaneko202304.pptx
kaneko202304.pptxkaneko202304.pptx
kaneko202304.pptx
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出し
 

po-6. 繰り返し実行(ループ),ステップ実行