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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
TeXで変える教育現場
doratex
1
13k
1216
cbtlibrary
0
140
The Next Big Step Toward Nuclear Disarmament
hide2kano
0
220
卒論の書き方 / Happy Writing
kaityo256
PRO
54
28k
TinyGoをWebブラウザで動かすための方法+アルファ_20260201
masakiokuda
2
230
2025-10-30 社会と情報2025 #05 CC+の代わり
mapconcierge4agu
0
110
自己紹介 / who-am-i
yasulab
PRO
6
6.3k
【dip】「なりたい自分」に近づくための、「自分と向き合う」小さな振り返り
dip_tech
PRO
0
230
【洋書和訳:さよならを待つふたりのために】第1章 出会いとメタファー
yaginumatti
0
250
CSS3 and Responsive Web Design - Lecture 5 - Web Technologies (1019888BNR)
signer
PRO
1
3.1k
LotusScript でエージェント情報を出力してみた
harunakano
0
120
160人の中高生にAI・技術体験の講師をしてみた話
shuntatoda
1
300
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
56
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Claude Code のすすめ
schroneko
67
210k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
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() を作ろう
演習解答