新屋高校 Python 入門講座

サムネイル

本日のタイムスケジュール 🕐

時間内容詳細
8:45 - 8:55オープニング自己紹介と今日の流れ
8:55 - 9:25

Python の世界へようこそ

  • プログラミングって何?身の回りのプログラム
  • Google Colab でプログラミング体験
9:15 - 9:35

Python の基本を体験しよう(前半)

  • 「Hello, World!」を表示してみよう
  • 変数で情報を記憶する
  • 条件分岐でプログラムを賢くする
  • 繰り返しでコンピュータの力を実感
9:35 - 9:45休憩☕ リフレッシュタイム
9:45 - 10:15AI で遊んでみよう
  • 🔮 AI 未来予想と夢分析
  • (時間が余っていれば)何かリクエストからアプリを作る!
10:15 - 10:35まとめと質問
  • 今日学んだことの振り返り
  • 2 学期からの Python 演習に向けて
  • ハイスクール Python で続きを学ぼう

Python の世界へようこそ 🐍✨

プログラミングって何?

「プログラミング」と聞くと、黒い画面に難しい文字がたくさん並んでいるものを想像するかもしれません。自分とはあまり縁がないものと思うかもしれません。でも実は、私たちの身の回りはプログラムでできたものに囲まれています。

Python って何?

Python(パイソン)は、1991年に生まれたプログラミング言語で、現在世界で最も人気のある言語の一つです。名前の由来は、イギリスのコメディ番組「モンティ・パイソン」から来ています。

例えば、このような形です。

# Pythonでの書き方
if age >= 18:
    print("成人です")
else:
    print("成人していません")

Python は様々な分野で活躍しています!

Python の活躍

  • データサイエンス(データ分析)

    • YouTuber の「どの動画が人気?」分析
    • Netflix の「あなたにおすすめの映画」システム
    • TikTok の「バズりやすい投稿時間」の調査
    • スポーツの試合データ分析(野球の打率計算など)
  • 自動化(仕事の効率化)

    • テストの採点を自動化
    • 出席確認を顔認識で自動化
    • SNS への定期投稿を自動化
    • 宿題の提出リマインダーを自動送信
  • AI・機械学習

    • 画像認識:Instagram のストーリーズで顔にフィルターをかける
    • 自然言語処理:Google 翻訳で英語の宿題を日本語に翻訳
    • 音声認識:Siri に「明日の天気は?」と話しかける
    • レコメンド:Apple Music, LINE MUSIC などの「今日のおすすめプレイリスト」
  • IoT(モノと組み合わせたインターネット)

    • スマートスピーカー(Alexa)で音楽再生
    • スマートウォッチ(Apple Watch)で心拍数測定
    • 自動運転車の制御システム
    • エアコンの遠隔操作アプリ
  • Web アプリケーション開発

    • Instagram、YouTube のサーバーサイド
    • オンライン授業システム(Zoom、Teams)
    • ゲーム配信サイト(Twitch)
    • オンラインショッピング(Amazon、楽天)

コードの雰囲気

どんな感じで使われているか、コードの雰囲気を見てみましょう!

動画のアップロード処理

def process_uploaded_video(video_file, user_id):
    # 1. 動画ファイルの検証
    if not is_valid_video(video_file):
        return "エラー: 対応していない形式です"
    
    # 2. 複数の解像度に変換
    resolutions = ["720p", "480p", "360p"]
    for resolution in resolutions:
        convert_video(video_file, resolution)
        print(f"{resolution} 版の変換完了!")
    
    # 3. データベースに動画情報を保存
    video_data = {
        "user_id": user_id,
        "title": "新しい動画",
        "upload_time": get_current_time(),
        "views": 0,
        "likes": 0
    }
    save_to_database(video_data)
    
    # 4. AI で自動字幕生成
    subtitle = generate_subtitle_with_ai(video_file)
    
    return "アップロード完了!"

# ユーザーが動画をアップロード
result = process_uploaded_video("my_video.mp4", "user123")
print(result)

画像の処理

# カメラのフィルター
import cv2
import numpy as np

def apply_vintage_filter(image):
    """ヴィンテージ風フィルターを適用"""
    
    # 1. 色調を調整(セピア調に)
    kernel = np.array([[0.272, 0.534, 0.131],
                       [0.349, 0.686, 0.168],
                       [0.393, 0.769, 0.189]])
    
    vintage_image = cv2.transform(image, kernel)
    
    # 2. 明度を下げて古い写真っぽく
    vintage_image = cv2.convertScaleAbs(vintage_image, alpha=0.8, beta=30)
    
    # 3. 周囲を暗くするビネット効果
    rows, cols = image.shape[:2]
    
    # 中心からの距離マップを作成
    X_resultant_kernel = cv2.getGaussianKernel(cols, 200)
    Y_resultant_kernel = cv2.getGaussianKernel(rows, 200)
    
    resultant_kernel = Y_resultant_kernel * X_resultant_kernel.T
    mask = 255 * resultant_kernel / np.linalg.norm(resultant_kernel)
    
    # 3チャンネルに拡張
    mask = np.dstack((mask, mask, mask))
    
    # ビネット効果を適用
    vintage_image = np.uint8(vintage_image * (mask / 255))
    
    return vintage_image

def create_beauty_filter(image):
    """美肌フィルターを適用"""
    
    # 1. 肌をなめらかに(ガウシアンブラー)
    smooth = cv2.GaussianBlur(image, (15, 15), 0)
    
    # 2. 元画像と合成して自然な仕上がりに
    beauty_image = cv2.addWeighted(image, 0.6, smooth, 0.4, 0)
    
    # 3. 明度を少し上げて美白効果
    beauty_image = cv2.convertScaleAbs(beauty_image, alpha=1.1, beta=10)
    
    return beauty_image

おすすめシステム

# Instagram 風のおすすめシステム
def recommend_posts_for_user(user_id):
    # 1. ユーザーの過去の行動を分析
    user_behavior = get_user_behavior(user_id)
    liked_categories = analyze_likes(user_behavior)
    
    # 2. 似た興味を持つユーザーを見つける
    similar_users = find_similar_users(user_id, liked_categories)
    
    # 3. その人たちがいいねした投稿を取得
    potential_posts = []
    for similar_user in similar_users:
        posts = get_recent_likes(similar_user)
        potential_posts.extend(posts)
    
    # 4. AI でスコアを計算して上位を選択
    scored_posts = []
    for post in potential_posts:
        # 興味度、投稿時間、いいね数などを総合的に判断
        score = calculate_ai_score(post, user_id)
        scored_posts.append((post, score))
    
    # 5. スコア順に並べて上位10件を返す
    recommended = sorted(scored_posts, key=lambda x: x[1], reverse=True)[:10]
    
    return [post for post, score in recommended]

# あなたへのおすすめを生成
recommendations = recommend_posts_for_user("your_user_id")
print(f"あなたにおすすめの投稿が{len(recommendations)}件見つかりました!")

アプリの裏側では、これらのようなコードがたくさん書かれています。ただ、プログラミングをだいぶ勉強していないと難しいです。

実際のアプリやサイトでは、GUI(グラフィックユーザーインターフェース)と呼ばれるものを作って、ユーザーにとっては「ボタンを押すだけで使える」ような形にしています。

これのおかげで、プログラムを意識せず、みんなが簡単に使えるようになっています!

Amazon の例

少し補足です。

授業や趣味で、HTML/CSS を使ったことがあるかもしれません。これらは Web サイトの見た目を作るための言語ですが、Amazon や YouTube のようなサービスでは、そこにユーザーごとのデータを入れなければなりません。

Python などのプログラミング言語を使って、そのデータをデータベースから取ってきて表示したりしています!

Python の活躍

参考: by Amazon 天然水 ラベルレス 500ml ×24本 富士山の天然水 バナジウム含有 水 ミネラルウォーター ペットボトル 静岡県産 500ミリリットル (Smart Basic) - Amazon

なんでたくさんプログラミング言語があるの?

上のようなものは、他のプログラミング言語でも達成できるものも多いです。ただ、プログラミング言語によって得意・不得意があり、方言のようなものもあるので、それぞれの言語を使い分けることで、より効率的にプログラミングをすることができます。

参考:なぜプログラミング言語はこんなに多い?各言語の特徴を徹底解説! - Re:kaizen

Google Colab を使ってプログラミングをしよう

Python を始めるのに、難しい環境設定は必要ありません。Google Colab を使えば、ブラウザだけで始められます!

準備するもの

  • Google アカウント(お持ちの Gmail アドレス)
  • インターネットに接続されたパソコンやタブレット
  • ブラウザ(Google Chrome が推奨です)

始め方の手順

Google アカウントをまだお持ちでない場合は、公式のヘルプである Gmail アカウントの作成 - Gmail ヘルプ を参考に作成してください。

基本的な使い方

  • コードセルに Python のコードを入力します。
  • 実行ボタン(▶)をクリック、または「Shift + Enter」で実行します。
  • Google Colab の環境で Python プログラムが実行され、結果が下に表示されます。

また、右上の「共有」ボタンをクリックすると、URL を共有する or 他の人の Google アカウントを指定して共有することができます!

Google Colab の共有画面

コードセルとテキストセル

Google Colab には 2 種類のセルがあります:

  1. コードセル:Python のコードを書いて実行できます。 Google Colab のコードセル
  2. テキストセル:説明文や注釈を書くことができます。マークダウンと言って、見出しやリストなどを見やすく書くことができます。 Google Colab のテキストセル

今回使う Google Colab のノートブック

今回は、このノートブックを使ってプログラミングをしていきます!

https://colab.research.google.com/drive/16rKSArqaKRBMtZcnOVTBrzZZYkYXYywv

このように、「新屋高校 - Python 入門講座 2025-07-24」というものが出るはずです。

Google Colab の共有画面

これを編集できるように、コピーして自分の分を作りましょう。

「ファイル > ドライブにコピーを保存」をクリックします。

Google Colab の共有画面

しばらく待つと、新しいタブが開くか、もしくはこのような画面になるはずです。

もしこの場合は、「新しいタブで開く」をクリックしましょう。

Google Colab の共有画面

「のコピー」というものが後ろについた状態で、コピーが作成されます。URL の /drive/ の後ろについている ID が、元のノートブック(運営側で作ったもの)とは別の ID になっているはずです。

Google Colab の共有画面

ここまでで、ノートブックの準備は完了です!

Python の基本を体験しよう 🎯

「Hello, World!」を表示してみよう 👋

プログラミングの世界では、最初に「Hello, World!」と表示するのが伝統です!

# 画面に文字を表示する
print("Hello, World!")
print("こんにちは、Python の世界!")

# 計算もできます
print(10 + 5)      # 15
print(100 - 30)    # 70

変数で情報を記憶する 📦

変数は、データを保存する「箱」のようなものです。名前をつけて、後で使うことができます!

変数 x
42
x = 42
# 変数に値を保存
name = "山田太郎"
age = 16
favorite_subject = "数学"

# 保存した値を使う
print("名前:", name)
print("年齢:", age, "歳")
print("好きな科目:", favorite_subject)

# 計算にも使える
score1 = 85
score2 = 92
average = (score1 + score2) / 2
print("平均点:", average, "点")

条件分岐でプログラムを賢くする 🤔

「もし〜なら」という判断をプログラムにもさせることができます!

# 年齢によって違う対応をする
age = 16

if age >= 18:
    print("大人料金です")
else:
    print("学割が使えます!")

# 点数で評価を決める
score = 85

if score >= 90:
    print("すごい!Aランク!")
elif score >= 70:
    print("良い調子!Bランク")
else:
    print("もう少し頑張ろう")

繰り返しでコンピュータの力を実感 🔄

同じ処理を何度も繰り返すのは、コンピュータが最も得意とするところです!

ループ 【0 / 3
1
# 繰り返しの番号を使う
2
for i in range(3):
3
    print(f"{i + 1}回目: Hello")
コンソール出力
0
1
2
# 10回挨拶する
for i in range(10):
    print(f"{i + 1}回目:こんにちは!")

# 好きなアーティストのリストを作る
artists = ["YOASOBI", "あいみょん", "Official髭男dism", "米津玄師"]

for artist in artists:
    print(f"♪ {artist} の曲、いいよね!")

前半はここまでです、お疲れ様でした!

休憩後、次は、Python がどんなところで活躍しているかを見てみましょう! 🚀

AI で遊んでみよう

API って何?

API(Application Programming Interface)は、プログラム同士がやり取りするための「窓口」のようなものです。Web サイトやアプリでデータを扱う時には、このようにサーバーとやり取りすることが多いです。

例えば、こちらの天気予報 API を見てみましょう。

天気予報 API(livedoor 天気互換)

このような URL にアクセスすると、天気予報のデータを取得できます。

https://weather.tsukumijima.net/api/forecast/city/400040

こんな感じの「データそのもの」が表示されます。

Google Colab の共有画面

通常、サーバーにリクエストを送ったら(つまり、URL を入力して送信したら)、HTML ファイルが返ってきます。それをブラウザ(Safari, Chrome など)が読み込んで Web サイトが表示されるわけですが、API の場合は、このようなデータそのものを返してくれます。

このように、API を使うと、サーバーからデータを取得して、それを使ってプログラムを作ることができます。

OpenAI の API を使う

今日は、ChatGPT の開発元である OpenAI の API を使って、AI とやり取りしてみましょう。

先ほどの天気予報 API のように誰でも使えるわけではなく、「API キー」という認証情報が必要です。

これは、サービスを使うための「会員証」のようなものです。このキーがあるおかげで、使用料金などがきちんとその人に請求されます!

ちなみに、OpenAI の API キーは、このような感じで取得します。

Google Colab の共有画面

Google Colab の共有画面

今回のワークショップでは、運営側で準備した API キーを使用します。なので、皆さんに請求されることはありません!

(API キーを発行した、ハイスクールPython の運営に請求が行きます。連打しないでくださいね 😂 🥺 )

※ この Web サイトに載せず、この Google Meet のチャットに載せます!

チャットと API での違いを見てみる

ChatGPT のようなチャット(Web ブラウザ版)

皆さんの中にも、使ったことがある方は多いと思います。これは、Web ブラウザ版の ChatGPT です。チャット形式で AI とやりとりします。

https://chatgpt.com/

Google Colab の共有画面

メリット:

  • 簡単に始められる
  • プログラミング知識が不要

デメリット:

  • 自動化できない
  • 他のプログラムと連携しにくい

API を使ったプログラム

では、プログラムから API を使って、AI とやり取りしてみましょう。

from openai import OpenAI
import json


OPENAI_API_KEY = "sk-proj-xxx"
client = OpenAI(api_key=OPENAI_API_KEY)

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": "おはよう!週末にお出かけするのにおすすめなスポットをいくつか教えて。"}
    ],
    max_tokens=1000  # 回答の最大文字数のようなもの
)

# 整形して表示
print(json.dumps(response.model_dump(), indent=2, ensure_ascii=False))

このように返ってくるはずです!

Google Colab の共有画面

🔮 AI 未来予想と夢分析

あなたの将来を予想して、昨日見た夢の意味も分析してくれる神秘的なプログラムです!

print("🔮 AI 未来予想と夢分析 🔮")
print("あなたの未来を占って、夢の意味も教えます!")

# 基本情報を収集
name = input("\nお名前を教えてください: ")
dream = input("最近見た印象的な夢を教えてください: ")
goal = input("将来の夢や目標は何ですか: ")
worry = input("今一番心配していることは: ")

# 生年月日で運勢も
birth_month = input("生まれた月を教えてください(1-12): ")
birth_day = input("生まれた日を教えてください(1-31): ")

# AI に総合分析してもらう
analysis_prompt = f"""
{name}さんの未来予想と夢分析をしてください。

見た夢: {dream}
将来の目標: {goal}
心配事: {worry}
誕生日: {birth_month}{birth_day}

以下の形式で占ってください:
🔮 夢の意味とメッセージ:
✨ 3ヶ月後の予想:
🌟 1年後の予想:
🚀 5年後の未来像:
💎 成功のためのアドバイス:
⚡ 今月の運勢(恋愛・勉強・友情):
🎯 今日やるべきこと:
"""

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "あなたは神秘的で的確な占い師です。高校生が前向きになれるような未来予想をしてください。"},
        {"role": "user", "content": analysis_prompt}
    ],
    max_tokens=500
)

print(f"\n🌙 {name}さんの未来予想 🌙")
print("=" * 50)
print(response.choices[0].message.content)

(時間が余っていれば)何かリクエストからアプリを作る!

ここまでで時間が余っていれば、簡単なアプリを作ります!

Google Meet のチャットに、何かリクエストを送ってみましょう!

まとめと質問対応 🌟

今日は短い時間でしたが、Python の基本から AI との連携まで体験できました!

今日学んだこと

  • Python の基本文法(変数、条件分岐、繰り返し)
  • AI API の使い方
  • プログラムと AI を組み合わせたプログラムの作り方

2 学期からの Python 演習に向けて

  • 今日の内容は Python の入り口部分です。
  • 2 学期からは、もっと詳しく Python の文法を学んでいきます。
  • プログラミングが上達する一番の近道は、自分で興味を持って色々なものを作ってみることです。

ハイスクール Python で続きを学ぼう

ハイスクール Python では、今日学んだ内容をさらに深く、楽しく学べるコンテンツを用意しています。

  • YouTube チャンネル: 分かりやすい解説動画
  • ウェブサイト: 体系的なプログラミング講座(このサイトです!)
  • ワークショップ: 定期的な実習イベント(今回のような形)

プログラミングの世界はまだまだ奥が深いです。今日をきっかけに、ぜひ Python の学習を続けてみてください! 🚀