Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Colabのみで初心者向けPythonハンズオン.pdf

 Colabのみで初心者向けPythonハンズオン.pdf

Avatar for mizzsugar

mizzsugar

July 04, 2026

More Decks by mizzsugar

Other Decks in Programming

Transcript

  1. 今⽇のゴール — この関数を完成させます COLABで動くKUJI関数 import random def kuji(name): fortunes =

    ["⼤吉", "中吉", "吉", "⼩吉", "凶"] fortune = random.choice(fortunes) message = f"{name}さんは{fortune}です!" if fortune == "⼤吉": message += "おめでとうございます!" return(message) print(kuji("花⼦")) ▶ 実⾏結果 花⼦さんは⼤吉です!おめでとうございます! Pythonの基礎⽂法 print・変数・リスト・for⽂・if⽂・関数 ライブラリの使い⽅ import・randomでランダム抽選を実装 全部を組み合わせて関数化 kuji("花⼦") のように何度でも呼び出せる形に
  2. 今⽇の流れ PART 1 Python基礎 〜90分 print・変数・リスト・if・関数 + 演習 Google Colab

    PART 2 ライブラリ 〜30分 import・random + 演習 Google Colab 各パートの後に演習あり ── わからないことはその場で聞いてください 発展 Streamlitでアプリ化 (次のステップ) 参考 kuji関数に画⾯をつけてブラウザで動かす 発展学習
  3. 講師紹介 — はじめまして! mizzsugar 「みずき」と呼んでください 𝕏 @mizzsugar0425 プロフィール 静岡県静岡市 在住

    本⽇はオンラインから参加しています 開発会社でバックエンドエンジニア 普段から Python を書いています 料理・⾷べ歩きが好き 休⽇はカフェ巡り&おうちごはん わからないことがあったら、いつでも気軽に声をかけてください!
  4. Python 基礎 print ∕ 変数 ∕ リスト ∕ if ∕

    関数 🛠 使うツール: Google Colab
  5. print⽂ — 画⾯に⽂字を表⽰する 書き⽅: print( 表⽰したいもの ) カッコの中に表⽰したい内容を書く • ⽂字(テキスト)は

    " " か ' ' で囲む • 数字はそのまま書けばOK • カンマで区切ると複数まとめて表⽰ コード例 print("Hello, World!") print("こんにちは!") print("1 + 1 = 2") 実⾏結果 Hello, World! こんにちは! 1 + 1 = 2
  6. Colabの使い⽅ ① ノートブック を開いてみよう 1 colab.research.google.com にアクセス 「Google Colab」で検索して⼀番上に出てくるページ 2

    左下の + ノートブックを新規作成 をクリック 新しいノートブック(Untitled.ipynb)が開きます ノートブックとは? Colabでコードを書いて実⾏するための「ファイル」のこと。 Googleドライブに⾃動保存されます。 画⾯イメージ ↑ 左下のボタンをクリック
  7. Colabの使い⽅ ② コード を書いて実⾏しよう 3 セルに print("Hello World!") を⼊力 4

    セル左の ▶ ボタンをクリックして実⾏ 5 セル上の + コード をクリックして下にセルを追加 6 新しいセルに print("こんにちは!") を⼊力 7 もう⼀度 ▶ ボタンをクリックして実⾏ Hello World! と こんにちは! が表⽰されればOK! 画⾯イメージ ▶ 実⾏結果 Hello World! こんにちは!
  8. 演習① print⽂を使ってみよう 問題 1. ⾃分の名前を表⽰してみよう 2. 好きな⾷べ物を表⽰してみよう 3. 「今⽇はPythonを勉強します!」と表⽰してみよう ヒント

    — パターンを覚えよう # から始まる⾏はコメントです。 Pythonには実⾏されない「メモ書き」で、 画⾯には何も表⽰されません。 print("ここに⽂字を書く") # ""の中を変えればOK
  9. 演習① 答え print⽂ — 答え合わせ 問題の確認 1. ⾃分の名前を表⽰してみよう 2. 好きな⾷べ物を表⽰してみよう

    3. 「今⽇はPythonを勉強します!」と表⽰してみよう 答えの例 # 問題1 print("田中") # 問題2 print("ラーメン") # 問題3 print("今⽇はPythonを勉強します!") 実⾏結果 田中 ラーメン 今⽇はPythonを勉強します!
  10. 変数 — データを⼊れておく「箱」 書き⽅: 変数名 = 値 = は「代⼊」。数学の =

    とは意味が違う! なぜ変数を使うの? 名前を1か所変えるだけで、すべてに反映される! 直接書くと10か所全部書き直す必要がある… f⽂字列で⽂章に埋め込める f"私は{name}です" 変数を使う場合 name = "田中" # ← ここだけ変えればOK! print(f"{name}さん、こんにちは!") print(f"{name}さん、ようこそ。") print(f"{name}さんの登録が完了しました。") 実⾏結果 田中さん、こんにちは! 田中さん、ようこそ。 田中さんの登録が完了しました。
  11. 変数を使うと どこが便利? 変数なし 名前を変えたいとき… print("田中さん、こんにちは!") print("田中さん、ようこそ。") print("田中さんの登録完了。") 「田中」→「鈴⽊」に変えたい場合、 3か所すべて書き直す必要がある! 書き忘れるとバラバラになってしまう…

    print("鈴⽊さん、こんにちは!") print("田中さん、ようこそ。") ← 書き忘れ print("鈴⽊さんの登録完了。") 変数あり 名前を変えたいとき… name = "田中" ← ここだけ変えればOK! print(f"{name}さん、こんにちは!") print(f"{name}さん、ようこそ。") print(f"{name}さんの登録完了。") name = "鈴⽊" に変えるだけ! printの⾏は1⽂字も変えなくてOK。 100⾏あっても1か所直すだけで済む。
  12. 演習③ 変数を使ってみよう 問題 1. ⾃分の名前と年齢を変数に⼊れよう 例:name = "田中" / age

    = 25 2. f⽂字列を使って「私は〇〇です。〇歳です。」と表⽰ しよう 3. (チャレンジ)name の中⾝を別の名前に変えて、 print ⽂を変えずに実⾏してみよう ヒント name = "田中" # ← ⾃分の名前に変える age = 25 # ← ⾃分の年齢に変える print(f"f⽂字列の使い⽅:{変数名}")
  13. 演習③ 答え 変数 — 答え合わせ 問題の確認 1. ⾃分の名前と年齢を変数に⼊れよう 2. f⽂字列を使って「私は〇〇です。〇歳です。」と表⽰

    しよう 3. (チャレンジ)name を別の名前に変えて、print⽂を 変えずに実⾏してみよう 答えの例 # 問題1・2 name = "田中" age = 25 print(f"私は{name}です") print(f"{age}歳です") # チャレンジ:nameだけ変える name = "鈴⽊" print(f"私は{name}です") print(f"{age}歳です")
  14. ⽂字列をつなげる — + と += を使う 2つの書き⽅: ① a +

    b ── つないだ新しい⽂字列を作る ② a += b ── a の後ろに b を⾜す(aが書き換わる) • += は「右側を後ろに⾜して、同じ変数に⼊れ直す」 • message = message + " world" と同じ意味 • 長く書きたい⽂章を 少しずつ組み⽴てるのに便利 この書き⽅は kuji関数 でも使います。 「⼤吉のときだけメッセージを追加」する場⾯で活躍! コード例 message = "hello" print(message) message += " world" print(message) 実⾏結果 hello hello world # + でも同じことができる greeting = "おはよう" + "ございます" print(greeting) # → おはようございます
  15. 演習 ⽂字列をつなげてみよう 問題 1. message = "hello" を作って表⽰しよう 2. +=

    を使って " world" を後ろに⾜して、もう⼀度表 ⽰しよう 3. (チャレンジ) name = "田中" を作り、 message に 「さん、今⽇もよろしく!」 を⾜して表⽰しよう 期待する結果:田中さん、今⽇もよろしく! ヒント # message += "..."で⽂字列をつなげられます チャレンジでは message = name から始めて、message += "..." を何度か繰り返してもOK!
  16. 演習 答え ⽂字列をつなげる — 答え合わせ 問題1・2 の答え message = "hello"

    print(message) message += " world" print(message) 実⾏結果 hello hello world チャレンジの答え name = "田中" message = name message += "さん、" message += "今⽇もよろしく!" print(message) 実⾏結果 田中さん、今⽇もよろしく! この += の書き⽅は、後ほど kuji関数 でも使います!
  17. リスト — 複数のデータをまとめる 書き⽅: リスト名 = [値1, 値2, 値3] 角括弧でくくり、カンマで区切る

    • 何番⽬かで取り出せる(0から数える!) • fruits[0] → "りんご" • fruits[1] → "みかん" くじアプリで賞品リストに使います! コード例 fruits = ["りんご", "みかん", "バナナ"] print(fruits) print(fruits[0]) # 0番⽬ → りんご print(fruits[2]) # 2番⽬ → バナナ prizes = ["1等賞", "2等賞", "3等賞", "はずれ"] print(prizes) 実⾏結果 ['りんご', 'みかん', 'バナナ'] りんご バナナ ['1等賞', '2等賞', '3等賞', 'はずれ']
  18. if⽂ — 条件によって処理を変える 書き⽅: if 条件: 条件が True のときの処理 else:

    それ以外のときの処理 は「等しい」を⽐べる記号。 = を2つ並べます。 代⼊の = とは別物! 条件⽂では必ず (イコール2つ)を使う。 コード例 実⾏結果 おめでとう!
  19. if / elif / else — 複数の条件 書き⽅: if 条件1:

    処理1 elif 条件2: 処理2 else: それ以外 • elif は「else if」の略 • 条件は上から順番にチェックされる • どれかが True になったら残りはスキップ コード例 — くじアプリに近い形 実⾏結果 当たり!
  20. 演習⑤ if⽂を使ってみよう 問題 1. result = "1等賞" として、 1等賞なら「おめでとう!」、それ以外なら「残念…」 と表⽰しよう

    2. (チャレンジ) result を「はずれ」に変えて、 表⽰が切り替わることを確認しよう ヒント
  21. 演習⑤ 答え if⽂ — 答え合わせ 答えの例 result = "1等賞" if

    result == "1等賞": print("おめでとう!") else: print("残念…") 実⾏結果 おめでとう! ポイント 条件の⽐較は (イコール2つ)。 代⼊の = と混同しないように! 3つ以上に分けたいときは elif を使います(前のスライド参照)。
  22. 関数 — 処理に名前をつけて再利⽤する 書き⽅: def 関数名(引数): 処理 return 返したい値 •

    引数:関数に渡す値(カッコの中) • return:呼び出し元に返す値 • 呼び出し: 関数名(値) print は表⽰するだけ、 return は値を返す。役割が違います! コード例 # 関数を定義 def greet(name): return f"こんにちは、{name}さん!" # 関数を呼び出す message = greet("田中") print(message) print(greet("鈴⽊")) print(greet("⼭田")) 実⾏結果 こんにちは、田中さん! こんにちは、鈴⽊さん! こんにちは、⼭田さん!
  23. 関数を使うと どこが便利? 関数なし 同じ⾔い回しを毎回書く print(f"りんごは100円です") print(f"みかんは80円です") print(f"ぶどうは300円です") ⾔い回しを変えたいとき全部書き直し。 ミスのもと。コードもどんどん長くなる。 関数あり

    1回定義して何度も使う def price_text(item, price): return f"{item}は{price}円です" print(price_text("りんご", 100)) print(price_text("みかん", 80)) print(price_text("ぶどう", 300)) ⾔い回しの変更は関数の中の1か所だけ修正すれば 全部の呼び出しに⾃動で反映! コードも短くて読みやすい。
  24. 演習⑥ 関数を作ってみよう 問題 1. 名前を受け取って 「〇〇さん、こんにちは!」 を返す 関数 greet を作ろう

    ヒント def 関数名(引数): return 返したい値 # 呼び出す 結果 = 関数名(値) print(結果)
  25. 演習⑥ 答え 関数 — 答え合わせ 問題1 の答え def greet(name): return

    f"{name}さん、こんにちは!" print(greet("田中")) 実⾏結果 田中さん、こんにちは!
  26. import — 便利な道具箱を呼び出す 書き⽅: import ライブラリ名 ファイルの先頭に書くのが慣習 • Pythonには標準で使えるライブラリが多数ある •

    importするまで使えない(軽量化のため) • 今⽇は random を使う 今⽇使うライブラリ: random 、 streamlit くじアプリではファイルの先頭に import random import streamlit as st の2⾏を書きます。 コード例 import random # randomをimport # これでrandomの機能が使えるようになる! print(random.random()) # 0〜1の乱数 代表的な標準ライブラリ random ── 乱数・ランダム選択 math ── 数学の計算 datetime ── ⽇付・時刻 os ── ファイル操作
  27. random ライブラリ — 乱数を使う よく使う関数3つ random.choice(リスト) リストからランダムに1つ選ぶ random.randint(a, b) a〜b

    のランダムな整数 random.shuffle(リスト) リストをシャッフルする コード例 — くじアプリの核⼼部分 import random prizes = ["1等賞", "2等賞", "3等賞", "はずれ"] # リストからランダムに1つ選ぶ result = random.choice(prizes) print(f"結果:{result}") 実⾏結果(毎回変わる!) 結果:3等賞 random.choice(prizes) が くじを引く部分そのものです!
  28. 演習⑦ randomで遊んでみよう 問題 1. prizes リストを作り、 random.choice で1つ選んで 表⽰しよう 2.

    何度か実⾏して毎回結果が変わることを確認しよう 3. (チャレンジ) random.randint(1, 100) で 1〜100のランダムな数字を表⽰しよう ヒント import random # random.choice(リスト) # random.randint(この数値から, この数値まで)
  29. 演習⑦ 答え random — 答え合わせ 問題の確認 1. prizes リストを作り、 random.choice

    で1つ選んで 表⽰しよう 2. 何度か実⾏して毎回結果が変わることを確認しよう 3. (チャレンジ) random.randint(1, 100) で1〜100の ランダムな数字を表⽰しよう 答えの例 # 問題1・2 import random prizes = ["1等賞", "2等賞", "3等賞", "はずれ"] result = random.choice(prizes) print(f"結果:{result}") # チャレンジ num = random.randint(1, 100) print(f"ランダムな数字:{num}") ここまでで部品は揃いました!次はこれを組み合わせて kuji関数 を作ります。
  30. 今⽇のゴール まずは 要件 を整理しよう 作りたいもの kuji関数の仕様 1. 名前を受け取る 2. 運勢リスト

    ["⼤吉", "中吉", "吉", "⼩吉", "凶"] から ランダムに1つ選ぶ 3. 「◦◦さんは△△です!」と表⽰する 4. 「⼤吉」だったら 「おめでとうございます!」を追加する 5. 何度でも呼び出せるよう 関数化 する いきなり関数を書かず、少しずつ部品を組み⽴てて最後に関数化します。 完成イメージ >>> kuji("花⼦") 花⼦さんは⼤吉です!おめでとうございます! >>> kuji("太郎") 太郎さんは中吉です! 作り⽅の⼿順 Step 1 print⽂で名前 + 固定の運 Step 2 random で運をランダムに選ぶ Step 3 ⼤吉ならメッセージを追加 Step 4 関数化して何度でも呼べる形に
  31. STEP 1 / 4 まずは 名前と固定の運 を表⽰してみよう やること: ① name

    と fortune を変数に⼊れる ② f⽂字列で「◦◦さんは△△です!」と表⽰ まだランダムは使いません。 固定の値で形を作るのが先。 ⼩さく始めて、少しずつ機能を⾜していきます。 • 使う部品:変数・f⽂字列・print⽂ • すでに学んだことだけでOK コード name = "花⼦" fortune = "⼤吉" print(f"{name}さんは{fortune}です!") 実⾏結果 花⼦さんは⼤吉です! name や fortune を書き換えれば、表⽰も変わる。次は fortune をラン ダムにします。
  32. STEP 2 / 4 次は 運をランダム に選んでみよう 追加すること: ① import

    random ② 運勢リスト fortunes を作る ③ random.choice(fortunes) で1つ選ぶ • 変わるのは fortune = ... の⾏だけ • print⽂は1⽂字も変えない • これが変数を使うメリット! 何度か実⾏して、毎回違う運勢が出ることを確認しよう。 コード import random name = "花⼦" fortunes = ["⼤吉", "中吉", "吉", "⼩吉", "凶"] fortune = random.choice(fortunes) print(f"{name}さんは{fortune}です!") 実⾏結果(毎回変わる!) 花⼦さんは中吉です! 花⼦さんは凶です! 花⼦さんは⼤吉です!
  33. STEP 3 / 4 ⼤吉のとき だけメッセージを追加 追加すること: ① メッセージを message

    に⼊れる ② if fortune == "⼤吉": で判定 ③ True なら message に⽂字を追加 • += は「右側の⽂字を後ろに⾜す」 • ⼤吉のときだけ追加メッセージが出る ⽐較は == (イコール2つ)。 代⼊の = と混同しないように! コード import random name = "花⼦" fortunes = ["⼤吉", "中吉", "吉", "⼩吉", "凶"] fortune = random.choice(fortunes) message = f"{name}さんは{fortune}です!" if fortune == "⼤吉": message += "おめでとうございます!" print(message) ⼤吉が出たとき 花⼦さんは⼤吉です!おめでとうございます!
  34. STEP 4 / 4 — 完成! 最後に 関数化 して完成! 関数化するメリット:

    ① 名前を変えるたびにコードを書き直さなくていい ② kuji("花⼦") のように何度でも呼べる ③ for⽂と組み合わせれば何⼈分でも⼀気に! print から return へ: 関数の中で print してしまうと「表⽰する」だけで終わってしまう。 return message にすれば、結果を呼び出し元に返すことができ、 print(kuji("花⼦")) や、後で別の処理に渡すなど 使い回しがきく関数になります。 • def kuji(name): で関数を定義 • name が引数(外から渡す値) • return で結果を呼び出し元に返す 完成コード(KUJI関数) import random def kuji(name): fortunes = ["⼤吉", "中吉", "吉", "⼩吉", "凶"] fortune = random.choice(fortunes) message = f"{name}さんは{fortune}です!" if fortune == "⼤吉": message += "おめでとうございます!" return message # ← print ではなく return! print(kuji("花⼦")) print(kuji("太郎")) 実⾏結果 花⼦さんは⼤吉です!おめでとうございます! 太郎さんは⼩吉です! これが 今⽇のゴール達成!おめでとうございます!
  35. ADVANCED ∕ 発展学習 Streamlitで 画⾯をつけよう (次のステップ — 今⽇のkuji関数にUIを⾜す) 🛠 使うツール:

    VSCode ここからは 発展学習です。今⽇の本編はkuji関数まででゴール達成! 余裕がある⽅・興味がある⽅は、ブラウザで動くアプリ化に挑戦してみましょ う。
  36. Streamlit とは Pythonだけで ブラウザで動くアプリが作れる ライブラリ • HTMLやCSSは不要 • 数⾏のコードで画⾯が作れる •

    データ分析・AIアプリで広く使われている よく使うコード⼀覧 st.title("⽂字") ⼤きなタイトル st.write("⽂字") テキストを表⽰ st.button("ラベル") ボタンを作る st.success("⽂字") 緑⾊で表⽰ st.balloons() 風船アニメ
  37. 開発環境の準備 1 VSCodeのターミナルを開く メニュー → ターミナル → 新しいターミナル 2 Streamlitをインストール

    pip install streamlit 3 作業⽤フォルダを作る デスクトップ等に kuji-app フォルダを作成し、VSCodeで開く (メニュー → ファイル → フォルダーを開く) 4 フォルダ内にapp.pyを作成 VSCodeで「新規ファイル」→ app.py と命名して保存 5 アプリを起動するコマンド(後で使う) streamlit run app.py pip とは? Pythonのパッケージ(ライブラリ)を インストールするコマンドです。 インターネットから⾃動でダウンロードされます。 インストール後に確認: streamlit --version
  38. STEP 1 / 3 おみくじアプリ — kuji関数を持ち込んで名前⼊力欄を作る import streamlit as

    st import random # Colabで作ったkuji関数をそのまま持ってくる! def kuji(name): fortunes = ["⼤吉", "中吉", "吉", "⼩吉", "凶"] fortune = random.choice(fortunes) message = f"{name}さんは{fortune}です!" if fortune == "⼤吉": message += "おめでとうございます!" return message st.title(" おみくじアプリ") st.write("名前を⼊れてくじを引いてみよう!") # 名前⼊力欄 name = st.text_input("あなたの名前") ポイント: ① Colabで作った kuji関数 をそのままコピペ。② st.text_input("ラベル") で⼊力欄を作る。
  39. STEP 2 / 3 おみくじアプリ — ボタン を追加する import streamlit

    as st import random def kuji(name): fortunes = ["⼤吉", "中吉", "吉", "⼩吉", "凶"] fortune = random.choice(fortunes) message = f"{name}さんは{fortune}です!" if fortune == "⼤吉": message += "おめでとうございます!" return message st.title(" おみくじアプリ") st.write("名前を⼊れてくじを引いてみよう!") name = st.text_input("あなたの名前") # ボタンを追加 if st.button("くじを引く"): st.write(f"{name}さんがくじを引きました!") ポイント: if st.button("…"): でボタンが押されたときの処理を書く。次のス テップで kuji(name) を呼び出します。
  40. STEP 3 / 3 — 完成! おみくじアプリ — kuji(name) を呼び出して結果を表⽰

    import streamlit as st import random def kuji(name): fortunes = ["⼤吉", "中吉", "吉", "⼩吉", "凶"] fortune = random.choice(fortunes) message = f"{name}さんは{fortune}です!" if fortune == "⼤吉": message += "おめでとうございます!" return message st.title(" おみくじアプリ") st.write("名前を⼊れてくじを引いてみよう!") name = st.text_input("あなたの名前") if st.button("くじを引く"): message = kuji(name) # ← kuji関数を呼び出す! st.success(message) kuji関数がそのまま使える! return で返ってきた message を st.success で表⽰す るだけ。Colabで⼀度作った関数を、UIをつけて再利⽤ — これが関数のチカラ。
  41. アプリを動かそう — streamlit run 1 app.py を保存する(Ctrl+S / Cmd+S) 2

    ターミナルで以下を実⾏ streamlit run app.py 3 ブラウザが⾃動で開く 開かない場合は http://localhost:8501 にアクセス 4 ボタンを押してくじを引いてみよう! コードを編集したら? ファイルを保存するとStreamlitが ⾃動でリロードされます。 ターミナルを再起動する必要はありません。 アプリを⽌めるとき Ctrl + C (ターミナルで) 運勢リストを⾃分好みにカスタマイズしてみよう! 例:「超⼤吉」「ふつう」など追加
  42. 今⽇学んだこと 01 print⽂ 画⾯に⽂字を表⽰する 02 変数・リスト データを箱に⼊れて管理する。複数デー タをまとめる 03 if⽂

    条件によって処理を変える 04 関数(def) 処理に名前をつけて再利⽤する 05 import・random ライブラリを呼び出してランダム抽選を 実装 これら全部を組み合わせて kuji(name) 関数を完成! 関数・リスト・random・f⽂字列・if⽂ — すべての部品がひとつにつながりました
  43. NEXT STEPS さらに 学ぶには 今⽇作ったアプリをベースに、 少しずつ機能を追加してみよう。 ST Streamlitでアプリ化(本⽇の発展パート) kuji関数にボタンと画⾯をつけてブラウザで動かす cls

    クラスを学ぶ ⼤きなプログラムを整理する データ分析に挑戦 pandas・matplotlibを使ってみる 今⽇のアプリをカスタマイズ 賞品を変える・デザインを変える