Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
ThingLink
matleenalaakso
28
4.3k
Linguaxes de programación
irocho
0
530
RGBでも蛍光を!? / RayTracingCamp11
kugimasa
2
380
1014
cbtlibrary
0
530
都市の形成要因と 「都市の余白」のあり方
sakamon
0
160
おひとり様Organizations管理者もルートアクセス管理を有効にしよう!
amarelo_n24
1
100
Padlet opetuksessa
matleenalaakso
10
15k
Chapitre_2_-_Partie_2.pdf
bernhardsvt
0
170
【ZEPホスト用メタバース校舎操作ガイド】
ainischool
0
170
Semantic Web and Web 3.0 - Lecture 9 - Web Technologies (1019888BNR)
signer
PRO
2
3.2k
Chapitre_2_-_Partie_3.pdf
bernhardsvt
0
150
1125
cbtlibrary
0
170
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
The Curse of the Amulet
leimatthew05
1
8.7k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
Build your cross-platform service in a week with App Engine
jlugia
234
18k
YesSQL, Process and Tooling at Scale
rocio
174
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Faster Mobile Websites
deanohume
310
31k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
740
Designing for Timeless Needs
cassininazir
0
130
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
83
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
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() を作ろう
演習解答