cs-11. Python の条件分岐と繰り返し,ステップ実行

331 Views

December 17, 21

スライド概要

YouTube 動画
https://youtu.be/zeleeooCfT0
--------------------

コンピューターサイエンス
URL: https://www.kkaneko.jp/cc/cs/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

cs-11. Python の条件分岐と繰 り返し,ステップ実行 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 1

2.

アウトライン □ プログラミング言語 Python の基礎 •式 • 変数 • 条件分岐,繰り返し □ ステップ実行 2

3.

11-1 Python 言語 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 3

4.

• Python 言語とは何でしょうか? 問いかけ • Python 言語のアプリケーション を動かすのに,どういう手順を 踏むでしょうか? 4

5.

• 「入門者に学習しやすい」とされる Python 言語の 特徴 • 多数の拡張機能(外部プログラムの インポートなど) • Python 言語システムのソースコー ドは公開されている • オブジェクト指向の機能を持つ オブジェクト,クラス,メソッド, 属性,クラス階層,継承 5

6.

Python の動作 Python のソースコード バイトコード コンパイル (ビルド) Python 仮想マシン 標準ライブラリ コンパイル(ビルド)と実行は 一度に行われる 全部がそろって, 1つのアプリケーション ソースコードは、 いろいろなマシンで動作する 6

7.

プログラムの要素 私の見解 •式 • 関数 • オブジェクト,メソッド,引数 ※ この授業では,値が変化するオブジェクト のことを変数という • 条件分岐 • 繰り返し(ループ) Python でマスターしておくと,他のプログラミング言語 でも応用がきく,という考え方も 7

8.

11-2 変数,式 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 8

9.

いまから 行うこと • Python で,式や変数や計算に 上達する 9

10.

Python をビジュアルに体験,演習ができ るオンラインサービス ① ウェブブラウザで次の URL を開く Python Tutor https://www.pythontutor.com/ ② 「Start writing and visualizing code now」をクリック ③ 言語を選ぶ.この授業では Python 3.6 10

11.

「 Start writing and visualizing code now 」を クリック 11

12.

「Python 3.6」になっている エディタ (プログラムを書き換えることができる) 実行のためのボタン 12

13.

計算 ① Python プログラム print(100 * 200) すべて半角文字 「*」は掛け算の記号 ② 結果の「20000」を確認 「Visual Execution」をクリック.そして「Last」を クリック.結果を確認 13

14.

③ 「Edit this code」をクリックすると,エディ タの画面に戻る 14

15.

まとめ • 式の実行結果として,値が得られる 複数の式 実行結果 15

16.

• 変数には,データの値を代入で きる. Python の変数 a = 100 x = a * 20 「a = 100」のように書くと,a の 値が 100 に変化する 16

17.

変数 x の値を 100 に変化させる ① Python プログラム x = 100 17

18.

② 結果の「x 100」を確認 「Visualize Execution」をクリック.そして 「Last」をクリック.「Edit this code」をクリッ クして戻る 18

19.

式と変数 Python プログラム x = 100 y = 200 結果の 「300」を確認 print( x + y ) 19

20.

Python プログラム x = 100 y = 200 結果の 「20000」を確認 print( x * y ) 20

21.

Python プログラム x = 100 y = 200 結果の 「22000」を確認 print( ( x + 10 ) * y ) 21

22.

底辺が2.5で,高さが5のとき, 三角形の面積は,面積: 6.25 Python プログラム teihen = 2.5 takasa = 5 結果の 「6.25」を確認 print( teihen * takasa / 2 ) 22

23.

まとめ • 式の中に,変数名を書くことができる 式 23

24.

全体まとめ • 値が変化するオブジェクトのことを変数 という • 式の実行結果として,値が得られる 24

25.

11-3 条件分岐 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 25

26.

命令(コマンド) ◇ 命令(コマンド)を書くためのプログラミング 言語は、いろいろ Python, Java, C, C++, JavaScript, C#, アセン ブラ ◇ 命令(コマンド)は、1つずつ順番に並んでい て、コンピュータは進んだり戻ったりするのが普通 判断(「はい」か「いいえ」) ループ ※ 順番に並んでいないという場合もある: SQL, Scheme, Prolog など 26

27.

条件分岐 変数や式の値によって,プログラム実行の流 れが分岐する age の値が 12以下 13以上 → 500 yen → 1800 yen 条件式は「age <= 12」のようになる 27

28.

条件分岐のプログラム例 28

29.

① Python Tutor のエディタに,次のプロ グラムを入れる if (age <= 12)の直後に「:」 else の直後に「:」 (どちらも,コロン) 字下げも正確に! print の前に,「タブ (Tab)」を 1つだけ 29

30.

正しくない字下げ 正しい字下げ 「delキー」などを使いなが ら編集 30

31.

② 実行し,結果を確認 31

32.

③ 10 を 30 に書き換えて,実行し,結果を確 認 結果は 1800 である 32

33.

11-4 ステップ実行 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 33

34.

• 命令(コマンド)は、順番に並 んでいる • 通常は,上から順に1つずつ実 行される(逐次実行) プログラム実行 • 条件分岐や繰り返しでは,逐次 実行とは違う実行の流れになる ※ プログラミング言語の種類に よっては,順番に並んでいないと いう場合もある: SQL, Scheme, Prolog など 34

35.

ステップ実行 • ステップ実行により、プログラ ム実行の流れをビジュアルに観 察 • プログラム開発環境の機能 35

36.

• 次のことを理解しマスターする みどころ • Python Tutor でのステップ実行 の操作 • 変数の値の変化 • 実行の流れの変化(ジャンプ) 36

37.

python tutor でのステップ実行 ステップ実行により,プログラム実行の流れ を確認できる 37

38.

① まずは,「Visualize Execution」をクリッ クして,実行開始 38

39.

すでに,プログラムを実行中だったときは,「First」 をクリックして,最初の行に戻す 39

40.

②「Step 1 of 3」と表示されているので, 全部で,ステップ数は 3 あることが分かる 40

41.

③ ステップ実行したいので,「Next」をクリッ クしながら,矢印の動きを確認. ※「Next」ボタンを何度か押し,それ以上進めな くなったら終了 見どころ 2行目から 5行目へ ジャンプするところ 41

42.

④ 最後の行まで達したら,「Edit this code」をク リックして,エディタの画面に戻る 42

43.

⑤ 次のように「age = 10」と書き換えて,い ままでと同じことを行う 見どころ 3行目で実行が止まる 43

44.

次のプログラム作成に挑戦 weight の値が 100未満 100以上 → 0 yen → 1000 yen 正解の例は次のページ 44

46.

python tutor でのステップ実行 • ステップ実行により、進んだり戻ったりする様子をビ ジュアルに観察できるウエブサービス • ウェブブラウザを使う • python tutor は、たくさんの言語を扱うことができる Java, Ruby, Python, C, C++, JavaScript, TypeScript など 46

47.

11-5 繰り返し (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 47

48.

繰り返し • 繰り返し(ループ)では,同 じ処理や操作を繰り返す 48

49.

物体の落下 物体を落とすと 9.8 × (時間)2 ÷ 2 の分,落ちていき ます. (空気抵抗は無視する) ここをドラッグすると, 表示枠が広がる 49

50.

配列と繰り返し Python プログラム 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 の前に,「タブ」を 1つだけ 50

51.

②「Visualize Execution」をクリック 51

52.

③「Last」ボタンをクリック 52

53.

④ 結果が表示されるので確認する. ここをドラッグすると, 表示枠が広がる まだ続きます オブジェクト x は 11 個の 要素が入った配列 53

54.

⑤「First」をクリックして,最初に戻しなさい 54

55.

⑥ 「Step 1 of 24」と表示されているので, 全部で,ステップ数は 24 あることが分かる 55

56.

⑦ ステップ実行したいので,「Next」をクリックしな ながら,緑の矢印の動きを確認する. ※ 「Next」ボタンを何度か押し,それ以上進めな くなったら終了 見どころ) 2行目と 3行目を 進んだり,戻ったりする ところ 56

57.

⑧ 終わったら「Edit this code」をクリックして, 元の画面に戻る 57

58.

⑨ 次のように書き換えて,①から⑧と同じこと を行う 180円,20円, 250円,40円で 消費税込みの価格 を求める 58

59.

11-6 繰り返しの別の例 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 59

60.

繰り返しのプログラム例 実行結果 60

61.

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

62.

確認クイズ 次のプログラムで i の値はどのように変化するか? i の値: 0 → 1 → 2 → 3 → 4 「y[i] = x[i] * 1.1」を i の値を変えながら 5回繰り返す 62

63.

答え合わせ 次のプログラムで i の値はどのように変化するか? i の値: 0 → 1 → 2 → 3 → 4 「y[i] = x[i] * 1.1」を i の値を変えながら 5回繰り返す 63

64.

① 次のプログラムを実行し,結果を確認 オブジェクト x は 5 個の要素が入った リスト オブジェクト y は 5 個の要素が入った リスト 64

65.

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

66.

③「18 steps」と表示されているので, 全部で,ステップ数は 18 あることが分かる 66

67.

④ ステップ実行したいので,「Next」をクリック しながら,矢印の動きを確認 ※「Next」ボタンを何度か押し,それ以上進めな くなったら終了 見どころ 3行目,4行目、5行目が 繰り返される 実行が進むと, y の中身が更新される 67

68.

⑤ 終わったら「Edit this code」をクリックして, エディタ画面に戻る 68