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
31
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
42
2020_k3_python講座第7回
tattsu_hitsuzi
0
38
2020_k3_python講座第5回
tattsu_hitsuzi
0
65
2020_k3_python講座第4回
tattsu_hitsuzi
0
32
2020_k3_python講座第3回
tattsu_hitsuzi
0
1.1k
2020_k3_python講座第2回
tattsu_hitsuzi
0
43
2020_k3_python講座第1回
tattsu_hitsuzi
0
55
Other Decks in Education
See All in Education
今も熱いもの!魂を揺さぶる戦士の儀式:マオリ族のハカ
shubox
0
210
Virtual and Augmented Reality - Lecture 8 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.7k
SkimaTalk Tutorial for Corporate Customers
skimatalk
0
280
2025年度春学期 統計学 第5回 分布をまとめるー記述統計量(平均・分散など) (2025. 5. 8)
akiraasano
PRO
0
110
AIの時代こそ、考える知的学習術
yum3
2
160
JPCERTから始まる草の根活動~セキュリティ文化醸成のためのアクション~
masakiokuda
0
180
미국 교환학생 가서 무료 홈스테이 살면서 인턴 취업하기
maryang
0
110
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019538FNR)
signer
PRO
1
2k
20250625_なんでもCopilot 一年の振り返り
ponponmikankan
0
170
Tangible, Embedded and Embodied Interaction - Lecture 7 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.7k
新卒交流ワークショップ
pokotyamu
0
420
日本の教育の未来 を考える テクノロジーは教育をどのように変えるのか
kzkmaeda
1
210
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
Building Adaptive Systems
keathley
43
2.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Git: the NoSQL Database
bkeepers
PRO
430
65k
The Cult of Friendly URLs
andyhume
79
6.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
How to train your dragon (web standard)
notwaldorf
94
6.1k
The Language of Interfaces
destraynor
158
25k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Documentation Writing (for coders)
carmenintech
72
4.9k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
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() を作ろう
演習解答