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
条件分岐と繰り返し処理 / Python Basic
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kaityo256
PRO
October 11, 2022
Education
4.6k
1
Share
条件分岐と繰り返し処理 / Python Basic
プログラミング基礎同演習
kaityo256
PRO
October 11, 2022
More Decks by kaityo256
See All by kaityo256
勾配ブースティングと決定木の話 / gradient boosting and decision trees
kaityo256
PRO
5
1.1k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
この講義について / 00-setup
kaityo256
PRO
2
340
GitHubによるWebアプリケーションのデプロイ / 07-github-deploy
kaityo256
PRO
1
260
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
0
460
演習:Gitの応用操作 / 05-git-advanced
kaityo256
PRO
0
270
演習:GitHubの基本操作 / 06-github-basic
kaityo256
PRO
0
290
バージョン管理とは / 01-a-vcs
kaityo256
PRO
1
310
Gitの仕組みと用語 / 01-b-term
kaityo256
PRO
0
320
Other Decks in Education
See All in Education
事業紹介資料(トレーナー養成講座)
kentaro1981
0
220
SL AMIGOS 教育格差と私たちの取り組み - スリランカの支援学校への支援プロジェクト:リシンドゥ リオ 氏 (別府溝部学園短期大学 ビジネス観光コース 留学生):2720 Japan O.K. ロータリーEクラブ2026年4月6日卓話
2720japanoke
0
540
教育現場から見た Ruby on Rails
yasslab
PRO
0
120
Curso de Consagração ao Sagrado Coração de Jesus - O Sagrado Coração na História (Aula 01)
cm_manaus
0
120
Investigating Changes in Self-Assessed Spoken English Proficiency in a Three-Week Study-Abroad Program
uranoken
0
130
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4019538FNR)
signer
PRO
0
3.1k
吉祥寺.pmは1つじゃない — 複数イベント並走運営の12年 —
magnolia
0
370
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
signer
PRO
0
2.5k
Data Physicalisation - Lecture 9 - Next Generation User Interfaces (4018166FNR)
signer
PRO
1
910
P3NFEST 2026 Spring ハンズオン「ハッキング・ラブ!はじめてのハッキングをやってみよう」資料
nomizone
0
430
AI時代において英語学習は本当に必要? ~未経験からのバイリンガルキャリアの始め方を教えます~
kekekenta
0
130
勝手にCULTIBASE で広げよう、探究の輪! - CULTIVAL 2026
hiroc_sk
1
160
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Designing Powerful Visuals for Engaging Learning
tmiket
1
350
Are puppies a ranking factor?
jonoalderson
1
3.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
380
Context Engineering - Making Every Token Count
addyosmani
9
840
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
110
Abbi's Birthday
coloredviolet
2
7.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
1 27 条件分岐と繰り返し処理 プログラミング基礎同演習 慶應義塾大学理工学部物理情報工学科 渡辺
2 27 変数と型について for文による繰り返し処理 if文による条件分岐
3 27 a = 10 10という値に、aという名前をつける このaを「変数(variable)」と呼ぶ
4 27 print(a) a print文を実行することで、値を表示することができる 変数そのものを「評価」することでも値を表示できる (セルで実行) 10 10
5 27 a = 10 b = 20 c =
a + b aに10を代入 bに20を代入 a+bを実行し、結果にcという名前をつける 以上の動作は、計算機上でどうやって「実現」されているのか?
6 27 メモリからデータを取得し 何か計算し 結果をメモリに書き戻す 計算機とは 機械のこと 倉庫 (メモリ) 工場
(演算器) 物流センター (制御ユニット)
7 27 メモリ(主記憶)は、連番の「番地」がふってある メモリ 0番地 1番地 2番地 3番地 4番地 5番地
この荷物を0番地と1番地に 置いてください メモリアクセスは番地を指定して行う どこに何を置いたか覚えるのが面倒くさい
8 27 番地の代わりに「ラベル(荷札)」を指定する この荷物をどこかに置い てください a 荷札 メモリ 0番地 1番地
2番地 3番地 4番地 5番地 a
9 27 「a」の荷札がついた 荷物をください a 荷札 メモリ 0番地 1番地 2番地
3番地 4番地 5番地 a ラベル(荷札)を指定して荷物を受け取れる メモリのどこに何を置いたかを人間が管理しなくて良い (計算機が代わりに管理してくれる)
10 27 10 20 0番地 1番地 2番地 a b a
= 10 b = 20 c = a + b 10 20 30 0番地 1番地 2番地 a b a = a + b 30 20 0番地 1番地 2番地 a b c 変数がなければ新しく作成される 変数が既にあれば上書きされる
11 27 74 65 73 74 00 00 00 00
3F F0 00 00 メモリ メモリに保存できるのは整数のみ 浮動小数点数や文字列も使いたい 変数の型
12 27 データを解釈する「約束」 74 65 73 74 00 00 00
00 3F F0 00 00 メモリ 00 00 00 00 3F F0 00 00 float型 b b = 1.0 74 65 73 74 c c = "test" str型 ※ これは厳密にはデータ型の定義で「型とは何か」の定義は難しい
13 27 真偽値(bool) 真(True)か偽(False)しか取れない型 整数(int) 整数の値を取る型 浮動小数点数(float) 実数を近似する型 文字列(str) 文字列を表現する型
複素数(complex) 複素数を近似する型 型はtypeで判定可能
14 27 四則演算 a + b 変数同士や数値同士、またはその組み合わせで演算ができる a - b
a * b a / b 等号、不等号で比較ができる。結果は真偽値になる。 等号比較 a == b aとbが等しければTrue そうでなければFalse a != b aとbが等しければFalse そうでなければTrue 不等号比較 a > b a >= b
15 27 整数と浮動小数点数の演算結果は浮動小数点数になる 1 + 1.0 2.0 整数と整数の除算は浮動小数点数になる 4 /
2 2.0 整数と整数の除算を整数にしたければ//を使う 4 // 2 2
16 27 0.1 + 0.1 + 0.1 0.30000000000000004 0.1 +
0.1 == 0.2 True 0.1 + 0.1 + 0.1 == 0.3 False 浮動小数点同士の等号比較は信頼できない 浮動小数点は実数を近似する型
17 27 for i in range(10): print(i) for 変数 in
範囲: 繰り返し処理したいブロック この変数iをループカウンタと呼ぶ 何行でも良い コロンを忘れない インデント
18 27 for _ in range(10): print("Hello") for j in
range(10): print(j) ループカウンタに使う変数はなんでも良い jでも良い 長い名前でも良い for abracadabra in range(10): print(abracadabra) ループカウンタが不要な場合はアンダースコア「_」を使う
19 27 if 条件: 条件が成立した時に実行した いブロック コロンを忘れない 何行でも良い if a
> 0: print("aは正です")
20 27 条件不成立の場合に実行したいブロックにはelseを使う if a > 0: print("aは正です") else: print("aは負か0です")
複数の条件を並べたい場合はelifを使う if a > 0: print("aは正です") elif a ==0: print("aは0です") else: print("aは負です") 上から順にチェックされ、 最初に成立したブロックのみ 実行される
21 27 if a > 5: if a < 10:
print("5 < a < 10") else: print("10 <= a") else: print("a <= 5") 5 10 a<=5 5 < a < 10 10 <= a 例:変数aが以下の三条件のどれに対応するか知りたい if文は入れ子構造にできる
22 27 ・変数はメモリのどこかにつけられたラベル ・メモリ上の数値は「型」により解釈される ・繰り返しや条件分岐はブロックを伴う ・ブロックは ・コロンで始まる ・同じインデントを持つ行の集まり
23 27 𝑓 𝑥 = 0 方程式の解をもとめたい 𝑥 𝑦 =
𝑓(𝑥) O ここのxの値を知りたい
24 27 𝑥 𝑦 = 𝑓(𝑥) O 𝑥𝑛 𝑥𝑛+1 1.
適当な解候補の初期値を選ぶ 2. 解候補の位置で接線を引く 3. 接線とx軸の交点を次の解候補にする 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛 ) 𝑓′(𝑥𝑛 ) 解
25 27 𝑓 𝑥 = 𝑥3 −1 に対してニュートン法を実装し、複素数を含む 様々な初期値でどの解に収束するか確認せよ 方程式
26 27 Re Im 1 + 0jに収束 -0.5+0.87jに収束 -0.5-0.87jに収束 𝑓
𝑥 = 𝑥3 −1 複素数まで含めると三つの解が存在する 複素平面の様々な地点を初期値とし「どこに収束するか」の収束地図を作れ
27 27 𝑓 𝑥 = 𝑥4 −1 以下の四次方程式の収束地図を描け Re Im
𝑦 > 𝑥 𝑦 = −𝑥 𝑦 < 𝑥 𝑦 = 𝑥