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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 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を使ってみる 今⽇のアプリをカスタマイズ 賞品を変える・デザインを変える