po-9. Python プログラミング演習の総まとめ

スライド概要

Python プログラミング演習
URL: https://www.kkaneko.jp/cc/po/index.html

profile-image

kunihikokaneko

@6674398749

作者について:

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

スライド一覧
シェア
埋め込む»CMSなどでJSが使えない場合

公開日

2021-12-21 12:04:49

各ページのテキスト

1. po-9. Python プログラ ミング演習の総まとめ プログラミングの基礎を Python で学びたい人へ(全9回) URL: https://www.kkaneko.jp/cc/po/index.html 金子邦彦 1

2. アウトライン 9-1 オブジェクト,メソッド,関数 9-2 クラス定義,コンストラクタ 9-3 クラス階層,継承 • 重要トピックスのまとめ 2

3. 9-1. オブジェクト,メソッド, 関数 3

4. オブジェクト • プログラミングでのオブジェク トは,コンピュータでの操作や 処理の対象となるもののこと. • オブジェクトは1つあるいは複 数のデータを持つことができる 4

5. メソッド • メソッドは,オブジェクトに属 する操作や処理のこと hero.moveDown() hero はオブジェクト moveDown() はメソッド 間を「.」で区切っている • 引数(ひきすう)とは,メソッ ドに渡す値のこと 5

6. 式の抽象化 100 * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 a * 1.1 変数 a を使って,複数 の式を1つにまとめる (抽象化) 6

7. 関数 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) 式「a * 1.1」を含む 関数 foo を定義 関数 foo を使用. 100, 150, 400 は引数 7

8. 関数 • この関数の本体は 「return a * 1.1;」 • この関数は,式「 a * 1.1」に,名前 foo を付 けたものと考えることもできる 8

9. 式の抽象化と関数 抽象化前 類似した複数の式 実行結果 抽象化後 関数の定義と使用 同じ 実行結果になる 9

10. まとめ • プログラミングでのオブジェクトは,コンピュー タでの操作や処理の対象となるもののこと • メソッドは,オブジェクトに属する操作や処理の こと • 次の関数は,式「 a * 1.1」に,名前 foo を付けた ものと考えることもできる • 式の抽象化とは,変数を使って,複数の式を1つ にまとめること 10

11. 9-2. クラス定義,コンストラ クタ 11

12. Python のオブジェクトの生成 • 次の2つのオブジェクトを生成する Python プロ グラム a 1 2 "red" b 2 x 4 y "green" color • クラス Ball のオブジェクト生成を行うプログラム 12

13. クラス定義 クラス定義の中には,コンストラクタの定義,その 他メソッドの定義を含める. コンスト ラクタ その他 メソッド オブジェクトの生成を行うメソッドのことを コンストラクタという 13

14. • プログラミングでのメソッドと は,オブジェクトに関する操作 や処理のこと メソッドと クラス • メソッドは,クラスに属する • メソッド内のプログラムは,そ のメソッドが所属するクラスの 属性やメソッドへのアクセス権 がある 14

15. 属性やメソッド のアクセス • 「オブジェクト名」+「.」で 属性やメソッドにアクセスす る 15

16. 属性アクセス qty weight name 「オブジェクト名」+「.」で属性やメソッドにアクセスする 16

17. メソッドアクセス 「オブジェクト名」+「.」で属性やメソッドにアクセスする. メソッド内でアクセスするときも「.」 ※ 下のプログラムで,「self」は,「メソッドが処理中のオ ブジェクト」を扱うための変数 17

18. まとめ • メソッドは,クラスに属する • 「オブジェクト名」+「.」で属性やメソッドにア クセスする 18

19. 9-3. クラス階層,継承 19

20. クラス階層 クラス階層とは,複数のクラスが親子 関係をなすこと クラスA 親 子 クラスB 親 子 クラスC 親 子 クラスD 20

21. 継承 • 継承とは,親クラスの属性とメソッドを子クラスが 受け継ぐこと • 親クラスのことを「スーパークラス」,子クラスの ことを「サブクラス」ともいう 21

22. Python のオブジェクトの生成 • 次の3つのオブジェクトを生成 a 1 2 "red" b 3 4 "green" x 6 y "blue" color 5 x 1 r • オブジェクト生成を行うプログラム 22

23. クラスの類似性 • 類似した2つのクラス Ball 属性 Circle 属性 x x y y color メソッド x, y, color は同じ r の有り無しが 違う color r move move reset reset メソッドの名前も 中身も全く同じとする 23

24. 2つのクラスのプログラム (親子関係にしない場合) Ball Circle 追加 全く同じ 24

25. 問いかけ 同じようなプログラムを繰り返し書きたいですか? -> No. クラス階層により解決 Ball Circle 追加 全く同じ 25

26. クラスの親子関係 • クラス①が親,クラス②が子であるとき • クラス②は,クラス①の属性とメソッドをすべて持つ • クラス②で,クラス①にない属性やメソッドが追加さ れることがある クラス① クラスBall 親 親 子 子 クラス② クラスCircle 属性 r を追加 26

27. クラスの親子関係 クラス名 Ball 属性 x, y, color メソッド move, reset クラス名 Circle 属性 x, y, color, r メソッド move, reset クラス Circle は,親クラスで あるクラス Ball の属性とメ ソッドを継承する. 27

28. 2つのクラスのプログラム 親子関係にしない場合とする場合の比較 Ball Ball 働きは 同じ Circle 親子関係にしない (同じようなプログラムを繰り返す) Circle 親子関係にする 28

29. Python でのクラスの親子関係の書き方 親子関係の指定「class Circle(Ball):」 子クラスである Circle で追加される 属性,メソッドを書く コンストラクタの定義. super(Circle, self).__init__ により,親クラスの コンストラクタを呼び出していることに注意 29

30. Python でのクラスの親子関係の書き方 親クラスのコンストラクタを 呼び出して,属性値を設定 子クラスで追加した属性を設定 30

31. まとめ • クラス階層とは,複数のクラスが親子関係をなす こと • クラス①が親,クラス②が子であるとき • クラス②は,クラス①の属性とメソッドをすべて持つ • クラス②で,クラス①にない属性やメソッドが追加さ れることがある • 親子関係の指定は,「class Circle(Ball): 」のよ うに書く.Circle が子,Ball が親. • 継承とは,親クラスの属性とメソッドを子クラス が受け継ぐこと • 親クラスのことを「スーパークラス」,子クラス のことを「サブクラス」ともいう 31

32. 関連資料 • Python まとめページ https://www.kkaneko.jp/cc/python/googlecolab.html • Python の基本 Google Colaboratory,Paiza.IO を使用. https://www.kkaneko.jp/cc/colab/index.html • Python 入門(全6回) Google Colaboratoryを使用. https://www.kkaneko.jp/cc/pf/index.html • Python プログラミング演習(全9回) Python Tutor, VisuAlgo を使用 https://www.kkaneko.jp/cc/po/index.html • さまざまな Windows アプリケーションのインストールと設定 https://www.kkaneko.jp/cc/tools/index.html 32