Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Pythonの概要とGoogle Colabの使い方 / Python Hello
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kaityo256
PRO
October 04, 2022
Education
11k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pythonの概要とGoogle Colabの使い方 / Python Hello
プログラミング基礎同演習
kaityo256
PRO
October 04, 2022
More Decks by kaityo256
See All by kaityo256
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
240
What is XAI?
kaityo256
PRO
0
200
勾配ブースティングと決定木の話 / gradient boosting and decision trees
kaityo256
PRO
7
1.9k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
6.1k
この講義について / 00-setup
kaityo256
PRO
2
530
GitHubによるWebアプリケーションのデプロイ / 07-github-deploy
kaityo256
PRO
2
470
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
1
720
演習:Gitの応用操作 / 05-git-advanced
kaityo256
PRO
1
420
演習:GitHubの基本操作 / 06-github-basic
kaityo256
PRO
1
530
Other Decks in Education
See All in Education
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
280
【新規入学者様】ZEPメタバース校舎ガイド
ainischool
0
170
Draft Lesson Plan on the History of Information and Communication (included Submarine Cables)
shuichikishida
0
120
Center for Entrepreneurship Education | Science Tokyo (Institute of Science Tokyo)
sciencetokyo
PRO
0
490
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
PRO
4
19k
Tema 1. El relieve de España: Formación y características
juanmartin2026
0
34k
Requirements Analysis and Prototyping - Lecture 3 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.8k
Réunion des directrices et directeurs des écoles de la circonscription de Jonzac - 31 août 2026
fmarot
0
140
2026年度春学期 統計学 第15回 分布についての仮説を検証する ― 仮説検定(2) (2026. 7. 9)
akiraasano
PRO
0
140
2026年度春学期 統計学 第14回 分布についての仮説を検証する ― 仮説検定(1) (2026. 7. 2)
akiraasano
PRO
0
160
2026年度秋学期 統計学 講義の進め方と成績評価について (2026. 9. 28)
akiraasano
PRO
0
160
私たちはなんでテストするんだっけ? Ver.東北IT物産展2026 in 会津若松
camel_404
3
210
Featured
See All Featured
New Earth Scene 8
popppiees
4
2.6k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
270
How to build a perfect <img>
jonoalderson
1
6k
Abbi's Birthday
coloredviolet
4
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Building an army of robots
kneath
307
47k
Mobile First: as difficult as doing things right
swwweet
225
10k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
290
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Amusing Abliteration
ianozsvald
1
320
Transcript
1 30 Pythonの概要とGoogle Colabの使い方 プログラミング基礎同演習 慶應義塾大学理工学部物理情報工学科 渡辺
2 30 Pythonの文法やライブラリの使い方を覚える プログラムが組めるようになる 「プログラマ的な感覚」を身につける
3 30 タスクを見て実現コストを見積もれること タスク実現のための方法を知っていること 「このくらいのコードを書いたらこのくらいの ことができるはず」という感覚
4 30 タスク:卒論の実験で撮影したpng画像100枚を縦 横ともに半分にリサイズしたい もしWindowsの「ペイント」を使うと、一枚一枚開 いては「イメージのプロパティ」からサイズを指定 して保存しなおす必要がある。
5 30 タスク:卒論の実験で撮影したpng画像100枚を縦 横ともに半分にリサイズしたい Pythonによる解決例 import glob from PIL import
Image for file in glob.glob("*.png"): img = Image.open(file) (w, h) = img.size img.resize((w // 2, h // 2), Image.LANCZOS).save("resized/" + file) ImageMagickによる解決 例 mogrify -path resized -resize 50% *.png
6 30 タスク:パラメータを変えながら作成したダイ オード特性のパラメータ依存性が知りたい 電圧 電流 順方向電圧Vf a = 0.1
a = 0.2 a = 0.3 a = 0.4 a Vf O O
7 30 タスク:パラメータを変えながら作成したダイ オード特性のパラメータ依存性が知りたい ひとつひとつエクセルで開いて、マクロでフィッティングして、 それを別のシートにコピーして、最後にグラフを作成・・・ ・ 後からフィッティング関数を変えたくなったら? ・ データが増えたら?
globでファイル一覧を取得、SciPyのcurve_fitでフィッティング matplotlibでグラフ作成
8 30 タスクを見て実現コストを見積もれること タスク実現のための方法を知っていること PythonのSciPyライブラリや、curve_fitを知っている必要はない 「これはPythonなら数行でできるはず」と思えば 「Python フィッティング」でググるとすぐに出てくる 「プログラマ的な感覚」がなければ、そもそも検索しない
9 30 554889e5 897dfc89 75f88b55 fc8b45f8 01d05dc3 コンピュータがわかる形で指示を与えること コンピュータは機械語しか理解できない 人間にわかりやすい言語から機械語に翻訳する
機械語は数字の羅列 これをプログラミング言語と呼ぶ
10 30 int add(int a, int b){ return a+b; }
554889e5 897dfc89 75f88b55 fc8b45f8 01d05dc3 プログラミング言語 (人間がわかる) 機械語 (コンピュータがわかる) def add(a, b): return a + b インタプリタ (同時通訳) コンパイラ (翻訳) スクリプト言語 7c 7c 17 53 コンパイラ言語
11 30 実行方法 (翻訳の仕方) パラダイム (設計思想) ブロックの表現方法 (見た目) スクリプト言語:Python, Ruby,
Perl, JavaScript, ... コンパイル言語:C, C++, Fortran, Java, Rust, ... 手続き型、関数型、オブジェクト指向、... ※ 現代のプログラミング言語はほとんどがマルチパラダイム ※ 最近はこの二種類の区別は曖昧 中括弧型:C, C++, Perl, Java, JavaScript, Rust, ... キーワード型:BASIC, Ruby, シェルスクリプト, ... インデント型: Python, Haskell, F#, ...
12 30 プログラムは原則として上から順番に実行される from PIL import Image, ImageDraw white =
(255,255,255) red = (255,0,0) im = Image.new("RGB", (300, 200),white) draw = ImageDraw.Draw(im) draw.ellipse((90, 40, 210, 160), fill=red) im.show() 「日の丸」を描画するプログラム
13 30 プログラムは原則として上から順番に実行される from PIL import Image, ImageDraw white =
(255,255,255) red = (255,0,0) im = Image.new("RGB", (300, 200),white) draw = ImageDraw.Draw(im) draw.ellipse((90, 40, 210, 160), fill=red) im.show() ライブラリの読み込み 色の定義 イメージの作成 円の描画 イメージの表示 実行順序
14 30 aは正? 「Yes」と表示 「No」と表示 aが正かチェック 「Yes」と表示 「No」と表示 yes no
プログラムでの表現 yes no プログラムを「かたまり」にわけて その「かたまり」に処理を飛ばす ブロック=プログラムのかたまり 実装したいロジック しかし、順番に実行したくない場合もある
15 30 if (a>0){ puts("Yes"); }else{ puts("No"); } if a
> 0 then puts("Yes") else puts("No") end if a > 0: print("Yes") else: print("No") C言語 カッコで表現 Ruby キーワードで表現 Python インデントで表現 ブロックの表現方法はプログラミング言語により異なる aは正? 「Yes」と表示 「No」と表示 yes no
16 30 ライブラリやフレームワークが豊富だから ライブラリ よく使う便利な機能をまとめたもの 数学関数/ファイル操作/図のプロット等 フレームワーク 目的を達成するための枠組み 機械学習フレームワーク TensorFlow/Chainer等
ウェブ開発フレームワーク Django等 Pythonには「あったらいいな」がある
17 30 エディタでプログラムを保存して実行 print("Hello Python!") test.py $ python test.py Hello
Python! IPythonという対話的シェルを使う $ ipython In [1]: print("Hello Python!") Hello Python! Jupyter Notebookでブラウザから実行する
18 30 Jupyter Notebookをクラウドで利用できる仕組み Googleのサーバ 1. ブラウザでプログラムを送信 2. サーバでプログラムを実行 3.
結果をブラウザに表示
19 30 「Google Colab」と検索して出てきたサイトにアクセスする https://colab.research.google.com/ URLに直接アクセスする
20 30 Keioアカウント(
[email protected]
) を入力 Keioアカウントの認証後、Google Colabに リダイレクト
21 30 ログイン後、「ファイル」から「Python 3 の新しいノートブック」を選ぶ 「新機能をお試しください」というダイアログが出たら「今すぐ試す」をクリック
22 30 セル 再生ボタン ファイル名 セルにプログラムを入力し、再生ボタンもしくは「シフト+エンター」で実行できる
23 30 一番目のセルに「print("Hello World!")」と入力して実行せよ 再生ボタンを押した場合: そのセルが実行され、結果が表示される セル内でシフト+エンターを押した場合: そのセルが実行され、結果が表示される上に、カーソルが次のセルに移動する (次にセルがなければ作成される)
24 30 二番目のセルに「plint("Hello World!")」と入力して実行せよ 「`plint`という名前は知らない」というエラー 入力ミスなどでエラーが出た場合、エラーメッセージを見ながら修正すること
25 30 右上のメニューから、セルの移動や削除ができる マウスで範囲指定して、deleteキーで一度に消すこともできる
26 30 ここをクリックして修正することでファイル名を変更できる ファイルはGoogleドライブに保存される
27 30 課題2-1を実行し、画像を表示せよ。 Wordを起動し、レポートの体裁を整えてから「課題2」の 場所に表示された画像をドラッグ&ドロップで挿入せよ。 以下同様。
28 30 課題2-2を実行し、五芒星を表示せよ。 セルの内容は後から修正することができる 修正した内容は「実行」しないと更新されない
29 30 課題2-3を実行し、N芒星を表示せよ。 Nが偶数の時にうまくいかない理由はなぜか考察せよ
30 30 六芒星を描画するプログラムを作り、表示せよ。