-- Views
August 22, 26
スライド概要
https://2026.pycon.jp/ja/talks/G8MDJH
what's up, dogs?
Python まじ わからん 〜まじでpythonなんもわからん!を救う会〜 11:15 ‒ 11:45 @ ダリア1 #pyconjpB haruki 1
⾃⼰紹介 haruki • とあるIT企業新卒 2
PyCon JP Day2です 昨⽇は興味深いトークがたくさんありました 3
PyCon JP Day2です 昨⽇は興味深いトークがたくさんありました Q. 全部理解できた⽅、いますか? 4
PyCon JP ムズすぎる問題 5
PyCon JP ムズすぎる問題 2025年 PyCon JP 初参加 (⼤学4年) 6
PyCon JP ムズすぎる問題 2025年 PyCon JP 初参加 (⼤学4年) なにも わからない 7
So, Why? なぜムズいのか 8
そもそもPythonとは • プログラミング⾔語です 9
そもそもPythonとは • プログラミング⾔語です • • • • Typescript Ruby Go COBOL 10
そもそもPythonとは • プログラミング⾔語です • • • • Typescript Ruby Go COBOL ※分からなくても⼤丈夫 11
Pythonの「強み」 • データ分析 12
Pythonの「強み」 • データ分析 ※分からなくても⼤丈夫 13
Pythonの「強み」 • データ分析 • • • • ⾳声 画像 統計グラフ AI‧機械学習 14
Pythonの「強み」 ⾳声 • 画像 • 15
Pythonの「強み」 ⾳声 • 画像 • 16
Pythonの「強み」 ⾳声 • 画像 • 17
Pythonの「強み」 • 統計グラフ 18
Pythonの「強み」 • 統計グラフ 19
Pythonの「強み」 • 統計グラフ 20
Pythonの「強み」 • 統計グラフ 「温度をWebで⾒える化しただけで、 農家の⽅がすごく喜んでくれた」 21
Pythonの「強み」 • AI‧機械学習 22
Pythonの「強み」 • AI‧機械学習 23
Pythonの「強み」 • データ分析 • • • • ⾳声 画像 統計グラフ AI‧機械学習 →なんでもできる 24
PyCon JPは、なぜムズいのか 25
PyCon JPは、なぜムズいのか 多いから 26
PyCon JPは、なぜムズいのか 拡張機能が多いから 27
拡張機能 28
めちゃくちゃ多い「拡張機能」 拡張機能 =「ライブラリ」 29
めちゃくちゃ多い「ライブラリ」 ライブラリ 30
めちゃくちゃ多い「ライブラリ」 ライブラリ 標準ライブラリ Pythonに最初から⼊っている 31
めちゃくちゃ多い「ライブラリ」 ライブラリ 標準ライブラリ 外部ライブラリ Pythonに最初から⼊っている ⾃分で⼊れる 32
めちゃくちゃ多い「ライブラリ」 外部ライブラリ めっちゃ多い • なんでもできる • 準備がめんどくさい • (場合によっては)ムズい 33
めちゃくちゃ多い「ライブラリ」 標準ライブラリ 少ない • できること広くない • 準備いらない • かんたん 34
めちゃくちゃ多い「ライブラリ」 標準ライブラリ 少ない • できること広くない • 準備いらない • こいつらがよう知っとる 35
ここまでのまとめ 36
ここまでのまとめ • PyCon JPはムズい。仕⽅ない • 拡張機能 = ライブラリの多さが原因? • 外部ライブラリが多い。標準ならできるかも 37
おしながき 絶対に誰も置いていかない • Pythonの書き⽅:print, 変数, if, for • 標準ライブラリのご紹介:6選 • ライブラリの活⽤事例 38
Pythonの書き⽅ 39
Pythonの書き⽅ 変数 • いわゆる「箱」 place = "広島国際会議場" year = 2026 next_year = year + 1 40
Pythonの書き⽅ print • 変数の中⾝を⾒る greeting = "Hello world!" print(greeting) 41
Pythonの書き⽅ if • いわゆる「場合分け」 year = 2026 if year == 2026: print("今日は2026年です。") 42
Pythonの書き⽅ for • くりかえし number = 1 for i in range(10): number = number + 1 print(number) 43
Pythonの書き⽅ 何かを作るには、これで⼗分。 44
1: winsound 45
winsound おもちゃ 46
winsound おもちゃ • ⾳を出せる import winsound # ラ (440Hz) を 1秒 winsound.Beep(440, 1000) 47
winsound おもちゃ • ⾳声ファイルを再⽣ import winsound winsound.PlaySound("sound.wav") 48
2: random + decimal 49
random ランダムに数字を出してくれる 50
random ランダムに数字を出してくれる • 整数 import random # 1〜100の整数をランダムに生成 n = random.randint(1, 100) 51
random ランダムに数字を出してくれる • ⼩数 import random # 0.0〜1.0の小数をランダムに生成 x = random.uniform(0.0, 1.0) 52
decimal ⼩数の計算 53
decimal ⼩数の計算 • 詳細は後ほど import decimal a = decimal.Decimal("0.1") b = decimal.Decimal("0.2") print(a + b) # 0.3 54
昔話; ⼤学1年⽣の頃 個別指導塾で講師バイトしてた 55
昔話; ⼤学1年⽣の頃 個別指導塾で講師バイトしてた ⽣徒: ⼩学⽣ • 中学受験のために勉強中 • 単位変換が苦⼿ • 56
昔話; ⼤学1年⽣の頃 個別指導塾で講師バイトしてた ⽣徒: ⼩学⽣ • 中学受験のために勉強中 • 単位変換が苦⼿ 1m = 100cm • 1000g = 1kg • • 57
昔話; ⼤学1年⽣の頃 個別指導塾で講師バイトしてた ⽣徒: ⼩学⽣ • 中学受験のために勉強中 • 単位変換が苦⼿ • 1m = 100cm • 1000g = 1kg • 1m² = • 58
昔話; ⼤学1年⽣の頃 個別指導塾で講師バイトしてた ⽣徒: ⼩学⽣ • 中学受験のために勉強中 • 単位変換が苦⼿ • 1m = 100cm • 1000g = 1kg • 1m² = 10,000cm² • 59
昔話; ⼤学1年⽣の頃 単位変換:超基礎的な部分 練習問題が少ない もっと問題がほしい... 60
昔話; ⼤学1年⽣の頃 単位変換:超基礎的な部分 練習問題が少ない もっと問題がほしい... ただ数字をランダムに⽣成させたらイケそう 61
昔話; ⼤学1年⽣の頃 ※当時2021年 62
作戦内容 授業直前に、Pythonで問題を⽣成 63
作戦内容 授業直前に、Pythonで問題を⽣成 import random a = randomを使っていい感じの数字A b = randomを使っていい感じの数字B answer = (a + b) * 100 print("問題: {a}m + {b}m = ?cm") print(f"答え: {answer}cm") 64
作戦内容 これを授業直前にWordにコピペ、印刷、解かせる import random a = randomを使っていい感じの数字A b = randomを使っていい感じの数字B answer = (a + b) * 100 print("問題: {a}m + {b}m = ?cm") print(f"答え: {answer}cm") 65
ぼくのかんがえたさいきょう のこーど demo a = 0.1 b = 0.2 answer = a + b print(answer) 66
なぜうまくいかないか コンピューターは⼩数が苦⼿ キーワード:2進数 67
ぼくのかんがえたさいきょう のこーど demo from decimal import Decimal a = Decimal("0.1") b = Decimal("0.2") answer = a + b print(answer) 68
まとめ • randomで好きな⼩数‧整数を⽣成できる • コンピューターは⼩数が苦⼿ • decimalで⼩数計算を解決 69
まとめ • randomで好きな⼩数‧整数を⽣成できる • コンピューターは⼩数が苦⼿ • decimalで⼩数計算を解決 • ⽣徒は志望校に無事合格 • 君もPythonで志望校に合格しよう! 70
3: difflib 71
ある⽇... オンラインイベントを主催した (エンジニアイベントではない) 72
ある⽇... 参加者:70名 「あいまい検索」したい ※ある程度似ている名前を調べたい 73
difflib 主に⽂字列を「⽐較する」ときに使う 74
difflib 主に⽂字列を「⽐較する」ときに使う • 「⼀番似ているもの」を検索する demo 75
まとめ • difflibは⽂字と⽂字を⽐較するツール • 簡単な「あいまい検索」ができる! • ⼈間の考える「正確な検索」はできない 76
4: csv 77
csv 表について扱います 名前 都道府県 年齢 山田太郎 東京 25 田中ゴンザレス花子 大阪 32 佐藤次郎 広島 314 78
csv CSVとは:表を格納できるファイルです 79
csv CSVとは:表を格納できるファイルです 名前,都道府県,年齢 山田太郎,東京,35 田中ゴンザレス花子,大阪,32 佐藤次郎,広島,314 80
csv 表を操作できる 81
csv 表を操作できる • データを取り出す demo import csv with open("users.csv", encoding="utf-8") as f: users = csv.DictReader(f) ages = [int(user["年齢"]) for user in users] 82
まとめ • 某ソフトがなくても、表は操作できる • 複雑な計算と組み合わせれば、より詳細な分析も 83
5: sqlite3 84
sqlite3 データベース • データを保存しておく倉庫 85
sqlite3 データベース • データを「⼤量に」保存しておく倉庫 86
sqlite3 データベース • データを「⼤量に」保存しておく倉庫 • ただ⼊れるだけならファイルでいい • 例:YouTube 世界で25億⼈ 87
sqlite3 データベース • データを「効率的に」取り出せる倉庫 • ただ⼊れるだけならファイルでいい • 例:YouTube 世界で25億⼈ 88
sqlite3 sqlite3 = データベースそのものをファイルにする import sqlite3 con = sqlite3.connect("users.db") con.execute(めっちゃ難しい検索処理) 89
sqlite3 sqlite3 = データベースそのものをファイルにする あれ?それファイルと同じじゃん 90
sqlite3 →正直最適な選択肢ではない • とりあえずデータベースをお⼿軽に作りたい • テスト • 短期インターン⽤のプロジェクト 91
6: email 92
email 名前のまんま • メールを送る import smtplib from email.message import EmailMessage msg = EmailMessage() msg["Subject"] = "PyCon JP 2026のお知らせ" msg["From"] = "[email protected]" msg["To"] = "[email protected]" 93
email 名前のまんま • メールを送る msg.set_content("こんにちは!") with smtplib.SMTP("smtp.example.com", 587) as smtp: smtp.starttls() smtp.login("[email protected]", "password") smtp.send_message(msg) 94
email • メール送信にベストなライブラリではない • 「かゆいところに⼿が届く」Python 95
本⽇のまとめ • winsound • random + decimal • difflib • csv • sqlite3 • email 96
本⽇のまとめ • winsound - おもちゃ • random + decimal - ⼩数の計算 • difflib - ⽂字列の⽐較 • csv - 表計算 • sqlite3 - データベース • email - メール 97
いかがでしたか? • Python まじ わからん! • なんとなくわかった! • なんか機能物⾜りない... 98
おわり →時間が余ったら 99
本⽇のおすすめ ほかのトークについて調べてみました 100
本⽇のおすすめ Track C ダリア2 12:00- 「AI 法務代理⼈」 — 韓国法令アーカイブと Python による実装レポート 101
本⽇のおすすめ Track D 会議運営事務室 14:30- Python and language learning: How did Python help me get the JLPT N1 102
本⽇のおすすめ Track A フェニックスホール 15:45- 作って理解するCoding Agent 〜フレームワークに頼らない ピュアPythonでの実装〜 103
LT会やります! • 8/28 ⾦ 19:00~ • 都内某所 JR⼤崎駅から7分 JR五反⽥駅から11分 104
LT会やります! • 新卒研修の成果発表 • 学⽣優先枠を設けています • オンライン配信もあるよ • ピザ⾷えます ↑重要 105
ありがとうございました Thank you! 감사합니다! 謝謝! 谢谢! Dank je wel! 106