Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2020_k3_python講座第6回
Search
k3たっつー
July 04, 2020
Education
0
32
2020_k3_python講座第6回
2020年度のk3のpython講座第6回の内容になります
k3たっつー
July 04, 2020
Tweet
Share
More Decks by k3たっつー
See All by k3たっつー
2020_k3_python講座第8回
tattsu_hitsuzi
0
44
2020_k3_python講座第7回
tattsu_hitsuzi
0
39
2020_k3_python講座第5回
tattsu_hitsuzi
0
66
2020_k3_python講座第4回
tattsu_hitsuzi
0
33
2020_k3_python講座第3回
tattsu_hitsuzi
0
1.1k
2020_k3_python講座第2回
tattsu_hitsuzi
0
44
2020_k3_python講座第1回
tattsu_hitsuzi
0
56
Other Decks in Education
See All in Education
20251119 如果是勇者欣美爾的話, 他會怎麼做? 東海資工
pichuang
0
140
外国籍エンジニアの挑戦・新卒半年後、気づきと成長の物語
hypebeans
0
660
TeXで変える教育現場
doratex
0
4.6k
20250910_エンジニアの成長は自覚するところから_サポーターズ勉強会
ippei0923
0
360
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
2.7k
仏教の源流からの奈良県中南和_奈良まほろば館‗飛鳥・藤原DAO/asuka-fujiwara_Saraswati
tkimura12
0
170
MySmartSTEAM 2526
cbtlibrary
0
160
ロータリー国際大会について~国際大会に参加しよう~:古賀 真由美 会員(2720 Japan O.K. ロータリーEクラブ・(有)誠邦産業 取締役)
2720japanoke
1
740
Sanapilvet opetuksessa
matleenalaakso
0
34k
Web Application Frameworks - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
相互コミュニケーションの難しさ
masakiokuda
0
320
アジャイルの知見から新卒研修作り、そして組織作り
pokotyamu
0
120
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
4.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Git: the NoSQL Database
bkeepers
PRO
432
66k
What's in a price? How to price your products and services
michaelherold
246
13k
Done Done
chrislema
186
16k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Building Adaptive Systems
keathley
44
2.9k
Music & Morning Musume
bryan
46
7k
Fireside Chat
paigeccino
41
3.7k
How to train your dragon (web standard)
notwaldorf
97
6.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Transcript
K3 Python講座 7月4日 担当:りふてくす 今日のテーマ:データクラス
前回までのおさらい ファイル操作 ファイルの読み出し――with open、.readline()、.rstrip(“”)、 for line in file:
ファイルパス――相対パスと絶対パス ファイルの書き込み――モード名(r,w,a,x,+)、 変数名.write(引数) encodingについて――文字コードの種類に注意
復習問題(L6_0.py) ファイルの中身を読み込み、画像のように行列式の 形にして新しいファイルに書き込もう 前回の講座で作成した3×3の行列式の値を求める関 数を用いて計算結果も書き込もう(L5_0.py)
復習問題解答
今回のテーマ データクラス クラスとは? データクラスとは? オブジェクトを用いた関数
メソッドとは?
Aの名前:山田 Aの年齢:20歳 Bの名前:佐藤 Bの年齢:23歳 A B ↑オブジェクト ↑属性
クラスとは何ぞや? ヒトの作り方 名前: 身長: 年齢: 性別: ・ ・ ・ ←
ク ラ ス
クラスとは何ぞや? Aさんの作り方 Aさんの名前:山田 Aさんの身長:170.5cm Aさんの年齢:20歳 Aさんの性別:男 ・ ・ ・ ⇖クラスで作成した
オブジェクト(ここではAさん) →インスタンス(実体)
オブジェクトとクラスとインスタンス オブジェクト・・・ありとあらゆる「モノ」の総称 クラス・・・設計図 インスタンス・・・クラスによって作られたオブ ジェクト
インス タンス 化 クラス インスタンス オブジェクト A B C
データクラスとは何ぞや? クラスを簡単に定義できる機能 一部の特殊なメソッドを自動生成してくれる メソッドについては後述
データクラスを使うときに 必要 クラス「Human」を 定義 インスタンス「A」「B」 を作成 出力
1行目でクラスHumanを定義 2行目以降でそれぞれの属性を定義 属性の名前: データの型
データの型 int型→整数 float型→実数 bool型→真理値(TrueとFalse) str型→文字列
インスタンスを作成 クラスと同名の関数を使って初期化できる(コンストラクタ) 引数はクラスで定義した属性を順番に指定する ① ① ② ② ③ ③
④ ④
出力 インスタンス名.属性名 (例) Aの名前→A.name Bの名前→B.name Aの身長→A.height
データクラスを使うときに 必要 クラス「Human」を 定義 インスタンス「A」「B」 を作成 出力
None
リストを利用することでインスタンスをfor文 などでまとめて扱うこともできる
例題1(L6_1.py) turtleで円を描くプログラムを配布する x,y,rを属性としたクラスCircleを作り、インス タンスをリストに入れて、for文でリストを回 すことで様々な円を描けるようにしよう (例) (20,20)を中心とした半径50の円a
(100,100)を中心とした半径100の円b (0,-100)を中心とした半径80の円c
例題1解答
オブジェクトと関数 クラスのオブジェクトを用いて 様々な関数を定義する 関数の引数には、属性、オブジェクト、 リストなど様々なものを入れることがで きる
オブジェクトを返す関数 namae(属性)を引数に取り Human(namae,23)というインスタンス を作り、それを返す関数
オブジェクトを引数に取り、見やすいよう に出力する関数
リストを引数に取り、 リスト内のオブジェクトのageが 全て23かどうかを判断する関数
リストとn(人数)を引数に取り、 リストの後ろからn人ハブる関数
例題2(L6_2.py) 属性name(str型)、height(float型)、age(int型)、male(bool型) を持つクラスHumanを作り、 オブジェクトの身長を+8cmする関数atsuzoko() オブジェクトの性別を反転する関数nekama_nenabe() オブジェクトの年齢をn歳マイナスする関数sabayomi() を作ろう
例題2解答
メソッドとは何ぞや? list=[] list.append(10) メソッド 関数とは似て非なるもの
メソッドとは何ぞや? 関数・・・print()やlen()など単体で呼び出せるもの (例) print(“Hello,world!!”) メソッド・・・append()やpop()など、 オブジェクト(変数、値、リスト、 辞書など)に付けて呼び出せるもの 宣言するときはクラスの中で (例) list.append(10)
help()という関数で、オブジェクトに対する メソッドがどう用意されているかわかる (例) list=[] help(list) とするとリストに対するメソッドがわかる
help()という関数で、オブジェクトに対する メソッドがどう用意されているかわかる (例) list=[] help(list) とするとリストに対するメソッドがわかる
メソッドの作り方 クラス外と同様defを使って宣言 第一引数にそのクラスのインスタンスを 表すオブジェクトが入る 大抵selfが使われる
None
まとめ クラスという設計図でオブジェクトを作れる クラスによって生成されたオブジェクトをインスタンスという
参考 https://qiita.com/tag1216/items/13b0323 48c893667862a (データクラスの使い方) https://gammasoft.jp/blog/difference- method-vs-function/ (クラスとメソッドの違いについて)
演習(L6_3.py) 食材名、在庫、日持ち日数を属性としたFoodクラスを作り、 オブジェクトを分かりやすく表示するためのメソッドprint_food() オブジェクトの在庫を一つ減らすメソッドreduce1stock() リスト内の日持ち日数をそれぞれ1日減らす関数nextday() を作ろう
演習解答