192 Views
December 21, 21
スライド概要
トピックス:Python, プログラミング, Python Tutor, 繰り返し,for, in, ステップ実行
Python プログラミングの基本
https://www.kkaneko.jp/pro/po/index.html
金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
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
リスト • リストは,同じ型の要素の並び • リストの要素には順序がある.0から始まる番号 (添字)が付いている • リストは,要素の挿入,削除により,サイズが増 減する 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」のとき,10秒ほど待つ. → 混雑しているときは, 「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」ボタンを何度か押し,それ以上進めな くなったら終了 見どころ 3行目,4行目、5行目が 繰り返される 実行が進むと, 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 まとめページ https://www.kkaneko.jp/tools/man/python.html • Python プログラミングを学ぶ Python Tutor, VisuAlgo, Code Combat を使用 https://www.kkaneko.jp/cc/po/index.html • Python プログラム例 https://www.kkaneko.jp/pro/python/index.html • 人工知能の実行(Google Colaboratory を使用) https://www.kkaneko.jp/pro/ni/index.html • 人工知能の実行(Python を使用)(Windows 上) https://www.kkaneko.jp/pro/deepim/index.html 41