cs-10. Python プログラミングの基本

681 Views

December 17, 21

スライド概要

トピックス: オブジェクトとメソッド,引数,代入,データの種類,制御,コードコンバット(Code Combat)の紹介

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

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

cs-10. Python プログラミングの基 本 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 1

2.

オブジェクト,変数,メソッド,代入,変数 • オブジェクト:コンピュータでの操作や処理の対象と なるもののこと • 変数:名前の付いたオブジェクトには,変数,関数な どがある(「変数」は,数学の変数とは違う意味) • メソッド: オブジェクトに属する操作や処理.メソッド 呼び出しでは,引数を指定することがある.引数(ひ きすう)は,メソッドに渡す値のこと Hero.attack("fence", 36, 26) • 代入:「=」を使用.オブジェクトの値が変化する b = a + 100 2

3.

条件分岐,繰り返し(ループ) • 条件分岐 x > 20 のときのみ print("big") が実行される x ≦ 20 のときのみ print("small") が実行される • 繰り返し(ループ) 足し算の 5回繰り返し(0 + 1, 1 + 2, 3 + 3, 6 + 4, 10 + 5) 同じ結果 15 が得られる 3

4.

アウトライン 10-1 10-2 10-3 10-4 項目 復習 オブジェクトとメソッド,引数,代入 データの種類 制御 コードコンバット(Code Combat)の紹 介 4

5.

ソースコード (source code) • プログラムを,何らかのプログラミング言語 で書いたもの • 「ソフトウエアの設計図」ということも. 人間も読み書き,編集できる • 複数のプログラミング言語を使うことも import picamera camera = picamera.PiCamera() camera.capture("1.jpg") exit() Raspberry Pi で,カメラを使って 撮影し,画像を保存するプログラムの ソースコード 5

6.

プログラミング • コンピュータによりさまざまな問題を解くとき,プ ログラミングが役立つ (例)現在の日時,最大公約数,平方根,三角 関数など • コンピュータを使うからといって,計算が完璧に正 確というわけではない • さまざまなプログラミング言語がある.用途や状況 に応じて使い分ける • 「1つを知っていれば,どの言語も大体似ているの 6 で,応用が利く」という考え方もある

7.

プログラムが役に立つ理由 ① プログラム次第で,様々な処理が可能. ② プログラムは,コンピュータでの様々な処理を自 動化する ③ プログラムのソースコードは,作業記録としても 使うことができる.いつでも再現できる. ④ プログラム中の値などを変えて再実行も簡単 7

8.

10-1. オブジェクトとメソッド,引数, 代入 8

9.

オブジェクト • オブジェクト:コンピュータでの操作や処理の対 象となるもののこと • 名前の付いたオブジェクトには,変数,関数,モ ジュールなどがある. 9

10.

オブジェクトとメソッド hero.moveDown() Python プログラム hero オブジェクト moveDown() メソッド 間を「.」で区切っている • メソッド: オブジェクトに属する操作や処理. • メソッド呼び出しでは,引数を指定することがある.引数 (ひきすう)は,メソッドに渡す値のこと Hero.attack("fence", 36, 26) 10

11.

オブジェクトとメソッド オブジェクトが動く 実行画面 オブジェクトとメソッド (Python プログラム) 11

12.

オブジェクトが動く 実行画面 オブジェクトとメソッド (Python プログラム) 12

13.

メソッドの引数 オブジェクトが動く 実行画面 オブジェクトとメソッド (Python プログラム) 引数がある場合もあれば, ない場合もある. 13

14.

代入 • 代入:プログラムで,「x = 100」のように書く と,x の値が 100 に変化する x = 100 プログラム 実行結果 14

15.

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

16.

10-2.データの種類 16

17.

Python の主なデータの種類 データの種類 データ型名 Python プログラムでの書き方 整数 int 10 Decimal import decimal decimal.Decimal(10) 浮動小数 float 1.23 文字列 str "Hello, World\n" true/false bool True 日時 datetime.datetime import datetime as dt dt.datetime(2022, 12, 1, 1, 23, 45) リスト List [1, 2, 3] レンジ range range(1, 4) 辞書 dict {1: "orange", 2: "apple", 3: "apple"} numpy 配列 numpy.ndarray import numpy as np np.array([1, 2, 3]) 17

18.

演習 資料:19 ~ 22 【トピックス】 • データの種類 • 変数 18

19.

変数 ① Python Tutor のエディタで次のプログラムを入れ る. 整数を使ってみる. 変数 x の値を 100 に変化させる. 次のように「x = 100」を入れる. 19

20.

② 実行し,結果を確認する 「x 100」となっている. 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 20

21.

変数 ③ Python Tutor のエディタで次のプログラムを入れ る. 今度は、文字列を使ってみる 21

22.

④ 実行し,結果を確認する. 「s "Hello"」となっている. 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 22

23.

10-3. 制御 23

24.

制御 • プログラムは,上から順に実行(逐次実行)が基 本である • 条件分岐では,「実行される部分」と「実行され ない部分」がある • 繰り返し(ループ)では,同じ部分が繰り返し実 行される 24

25.

条件分岐 条件分岐では,「実行される部分」と「実行され ない部分」がある 実行結果 プログラム x > 20 のときのみ print("big") が実行される x ≦ 20 のときのみ print("small") が実行される 25

26.

繰り返し(ループ) 繰り返し(ループ)では,同じ部分が繰り返し実 行される 実行結果 プログラム 足し算の 5回繰り返し 0 + 1, 1 + 2, 3 + 3, 6 + 4, 10 + 5 26

27.

繰り返し(ループ) while True: hero.moveRight() hero.moveLeft() Python プログラム 同じ処理や操作を繰り返す これをマスターしておく. 他の多くのプログラミング言語でも応用がきく. 27

28.

オブジェクト,変数,メソッド,代入,変数 • オブジェクト:コンピュータでの操作や処理の対象と なるもののこと • 変数:名前の付いたオブジェクトには,変数,関数な どがある(「変数」は,数学の変数とは違う意味) • メソッド: オブジェクトに属する操作や処理.メソッド 呼び出しでは,引数を指定することがある.引数(ひ きすう)は,メソッドに渡す値のこと Hero.attack("fence", 36, 26) • 代入:「=」を使用.オブジェクトの値が変化する b = a + 100 28

29.

条件分岐,繰り返し(ループ) • 条件分岐 x > 20 のときのみ print("big") が実行される x ≦ 20 のときのみ print("small") が実行される • 繰り返し(ループ) 足し算の 5回繰り返し(0 + 1, 1 + 2, 3 + 3, 6 + 4, 10 + 5) 同じ結果 15 が得られる 29

30.

10-4. コードコンバット(Code Combat)の紹介 30

31.

Python まとめ • オブジェクトとメソッド hero.moveDown() hero はオブジェクト moveDown() はメソッド • 文字列は「"」または「'」で囲む • メソッド呼び出しでは,引数を指定することがある hero.attack("fence", 36, 26) hero.attack(enemy1) • 変数と代入 x = "Door" • メソッドの結果を,変数に代入 enermy1 = hero.findNearestEnemy() • 繰り返し(ループ) while True: hero.moveRight() hero.moveLeft() 31

32.

コードコンバット • コードコンバットは,Python プログラムの実習ができ るオンラインサービス • • • • • • オブジェクト メソッド 文字列 引数 変数と代入 繰り返し(ループ) プログラム実行結果 プログラム編集 がビジュアルに表示 の画面など される画面など 32

33.

コードコンバットを使うには URL: https://codecombat.com • 各自で会員登録することもできる(メリット:課金アイテ ムを買うことができる.履歴が残る) ・メールアドレス ・パスワードは,コードコンバット専用の パスワードを自分で考える ・誕生日 • 課金のメッセージがでたら,注意深く対処する • この資料では,会員登録しないとして説明する • 最初のダンジョンのクリア:目安は1から3時間 33

34.

① Web ブラウザを使う • https://codecombat.com 「課金のメッセージ」などで心配なことが あるときは,無理に使い続けないこと 課金のメッセージの例 34

35.

② 「今すぐプレイ」をクリック • 「日本語」になっていない場合には,日本語に変える • アカウント登録やログインは行わないことにする 35

36.

③ キースガードのダンジョンを選んでみる。 「ゲームスタート」をクリック 36

37.

④ 「キースガードのダンジョン」の最初の ダンジョンを選ぶ 音声が出るので、このとき、各自で「音量」を調整 ゴール 課金なしで も ゴールに 行ける 最初のダンジョン 37

38.

⑤ 「ゲームスタート」をクリック 38

39.

⑥ 「Python(デフォルト)」を選び、「次 へ」をクリック 39

40.

⑦ 使用可能なアイテムを選ぶ(ダブルク リック) 40

41.

⑧「ゲームスタート」をクリック 41

42.

⑨ 「レベルスタート」をクリック 42

43.

ヒントを見たいときは、「ヒント」を クリック 43

44.

メソッドの説明を見たいときは、「メソッ ド」の下のリストの中から、説明を見たい メソッドをクリック 44

45.

⑩ 編集画面で、試しに、 「hero.moveDown()」と追加して、「実行」 をクリックしてみる 45

46.

⑪ 「実行」で,キャラクタが動くので確認 する hero.moveRight() で右に動き、hero.moveDown() で 下に動く 46

47.

迷ったら,「ミッション(目標)」や 「ヒント」を確認する • プログラミングの練習だけでなく,ゲーム要素 (パズル)もある.楽しんで解く. • ヒントや説明が,英語で表示される場合がある (日本語版が無いときは英語表示) 47

48.

⑫「目標:成功!」になるまで、編集画面を 書き換えて、「実行」を繰り返す。 • 「目標:成功!」になったら「完了」をクリック 48

49.

⑬ 完了の確認.「続ける」をクリック 49

50.

ダンジョンのゴールを目指す • 赤い旗をたどり,ダンジョンのゴールを目指す • 有料のダンジョンもある.支払いをしない場合は, 有料のダンジョンは選べない 赤い旗をたどる 青い旗は有料のことも 50

51.

⑭ ダンジョンの出口を目指す 51

52.

オブジェクト,変数,メソッド,代入,変数 • オブジェクト:コンピュータでの操作や処理の対象と なるもののこと • 変数:名前の付いたオブジェクトには,変数,関数な どがある(「変数」は,数学の変数とは違う意味) • メソッド: オブジェクトに属する操作や処理.メソッド 呼び出しでは,引数を指定することがある.引数(ひ きすう)は,メソッドに渡す値のこと Hero.attack("fence", 36, 26) • 代入:「=」を使用.オブジェクトの値が変化する b = a + 100 52

53.

条件分岐,繰り返し(ループ) • 条件分岐 x > 20 のときのみ print("big") が実行される x ≦ 20 のときのみ print("small") が実行される • 繰り返し(ループ) 足し算の 5回繰り返し(0 + 1, 1 + 2, 3 + 3, 6 + 4, 10 + 5) 同じ結果 15 が得られる 53