新屋高校 Python 入門講座

探究・キャリア委員会 情報科 主催
- 目的:プログラミング言語「Python」を知り、2 学期からのPython演習につなげる
 - 日時:令和 7 年 7 月 24 日(木)8:45 ~ 10:35
 - 講師:齋藤 智樹(ハイスクールPython 運営)
 
本日のタイムスケジュール 🕐
| 時間 | 内容 | 詳細 | 
|---|---|---|
| 8:45 - 8:55 | オープニング | 自己紹介と今日の流れ | 
| 8:55 - 9:25 | Python の世界へようこそ  | 
  | 
| 9:15 - 9:35 | Python の基本を体験しよう(前半)  | 
  | 
| 9:35 - 9:45 | 休憩 | ☕ リフレッシュタイム | 
| 9:45 - 10:15 | AI で遊んでみよう | 
  | 
| 10:15 - 10:35 | まとめと質問 | 
  | 
Python の世界へようこそ 🐍✨
プログラミングって何?
「プログラミング」と聞くと、黒い画面に難しい文字がたくさん並んでいるものを想像するかもしれません。自分とはあまり縁がないものと思うかもしれません。でも実は、私たちの身の回りはプログラムでできたものに囲まれています。
Python って何?
Python(パイソン)は、1991年に生まれたプログラミング言語で、現在世界で最も人気のある言語の一つです。名前の由来は、イギリスのコメディ番組「モンティ・パイソン」から来ています。
例えば、このような形です。
# Pythonでの書き方
if age >= 18:
    print("成人です")
else:
    print("成人していません")
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 などのプログラミング言語を使って、そのデータをデータベースから取ってきて表示したりしています!

なんでたくさんプログラミング言語があるの?
上のようなものは、他のプログラミング言語でも達成できるものも多いです。ただ、プログラミング言語によって得意・不得意があり、方言のようなものもあるので、それぞれの言語を使い分けることで、より効率的にプログラミングをすることができます。
参考:なぜプログラミング言語はこんなに多い?各言語の特徴を徹底解説! - Re:kaizen
Google Colab を使ってプログラミングをしよう
Python を始めるのに、難しい環境設定は必要ありません。Google Colab を使えば、ブラウザだけで始められます!
もちろん、自分の PC 上に Python の環境を作れば、さらに柔軟に Python を使うことができます。この講座では、進めやすさを重視して Google Colab を使っています。
準備するもの
- Google アカウント(お持ちの Gmail アドレス)
 - インターネットに接続されたパソコンやタブレット
 - ブラウザ(Google Chrome が推奨です)
 
始め方の手順
Google アカウントをまだお持ちでない場合は、公式のヘルプである Gmail アカウントの作成 - Gmail ヘルプ を参考に作成してください。
Google アカウントには、「name@gmail.com」のように、末尾が「@gmail.com」のものと、「name@high-school-python.jp」のように、末尾が独自のドメインのものがあります。会社や学校などで Google アカウントを作成していると、後者のような形になります。この講座で Google Colab を使う上では、どちらのパターンでも問題ありません!
基本的な使い方
- コードセルに Python のコードを入力します。
 - 実行ボタン(▶)をクリック、または「Shift + Enter」で実行します。
 - Google Colab の環境で Python プログラムが実行され、結果が下に表示されます。
 
また、右上の「共有」ボタンをクリックすると、URL を共有する or 他の人の Google アカウントを指定して共有することができます!

こちらの "info@high-school-python.jp" は公開しても良い Google アカウントのメールアドレスですが、皆さんが何か共有する場合は、メールアドレスが周りに見えないように注意してください!(スクリーンショットを加工するなどの対策をしてください)
コードセルとテキストセル
Google Colab には 2 種類のセルがあります:
- コードセル:Python のコードを書いて実行できます。

 - テキストセル:説明文や注釈を書くことができます。マークダウンと言って、見出しやリストなどを見やすく書くことができます。

 
今回使う Google Colab のノートブック
今回は、このノートブックを使ってプログラミングをしていきます!
https://colab.research.google.com/drive/16rKSArqaKRBMtZcnOVTBrzZZYkYXYywv
このように、「新屋高校 - Python 入門講座 2025-07-24」というものが出るはずです。

これを編集できるように、コピーして自分の分を作りましょう。
「ファイル > ドライブにコピーを保存」をクリックします。

しばらく待つと、新しいタブが開くか、もしくはこのような画面になるはずです。
もしこの場合は、「新しいタブで開く」をクリックしましょう。

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

ここまでで、ノートブックの準備は完了です!
Python の基本を体験しよう 🎯
プログラミングは実際に体験してこそ楽しいもの!基本的な部分をサクッと見て、すぐに AI との連携に進みましょう!
実際、プロのプログラマーやエンジニアも、仕事では調べながらプログラムを書いています。それぞれの文法は、一回で覚えようとしなくても大丈夫です!
「Hello, World!」を表示してみよう 👋
プログラミングの世界では、最初に「Hello, World!」と表示するのが伝統です!
# 画面に文字を表示する
print("Hello, World!")
print("こんにちは、Python の世界!")
# 計算もできます
print(10 + 5)      # 15
print(100 - 30)    # 70
print() は画面に何かを表示するための命令です。# から始まる行はコメント(メモ)で、プログラムには影響しません。
変数で情報を記憶する 📦
変数は、データを保存する「箱」のようなものです。名前をつけて、後で使うことができます!
# 変数に値を保存
name = "山田太郎"
age = 16
favorite_subject = "数学"
# 保存した値を使う
print("名前:", name)
print("年齢:", age, "歳")
print("好きな科目:", favorite_subject)
# 計算にも使える
score1 = 85
score2 = 92
average = (score1 + score2) / 2
print("平均点:", average, "点")
変数名は自由に決められますが、分かりやすい名前をつけるのがコツです!name(名前)、age(年齢)など、英単語を使うのが一般的です。
条件分岐でプログラムを賢くする 🤔
「もし〜なら」という判断をプログラムにもさせることができます!
# 年齢によって違う対応をする
age = 16
if age >= 18:
    print("大人料金です")
else:
    print("学割が使えます!")
# 点数で評価を決める
score = 85
if score >= 90:
    print("すごい!Aランク!")
elif score >= 70:
    print("良い調子!Bランク")
else:
    print("もう少し頑張ろう")
if、elif、else を使って、プログラムに判断させることができます。まるでプログラムが考えているようですね!
繰り返しでコンピュータの力を実感 🔄
同じ処理を何度も繰り返すのは、コンピュータが最も得意とするところです!
# 10回挨拶する
for i in range(10):
    print(f"{i + 1}回目:こんにちは!")
# 好きなアーティストのリストを作る
artists = ["YOASOBI", "あいみょん", "Official髭男dism", "米津玄師"]
for artist in artists:
    print(f"♪ {artist} の曲、いいよね!")
for と range() を使えば指定した回数だけ繰り返し、リストの要素を一つずつ処理することもできます。手作業だと大変なことも、プログラムならすぐにできます!
前半はここまでです、お疲れ様でした!
休憩後、次は、Python がどんなところで活躍しているかを見てみましょう! 🚀
AI で遊んでみよう
API って何?
API(Application Programming Interface)は、プログラム同士がやり取りするための「窓口」のようなものです。Web サイトやアプリでデータを扱う時には、このようにサーバーとやり取りすることが多いです。
例えば、こちらの天気予報 API を見てみましょう。
このような URL にアクセスすると、天気予報のデータを取得できます。
https://weather.tsukumijima.net/api/forecast/city/400040
こんな感じの「データそのもの」が表示されます。

通常、サーバーにリクエストを送ったら(つまり、URL を入力して送信したら)、HTML ファイルが返ってきます。それをブラウザ(Safari, Chrome など)が読み込んで Web サイトが表示されるわけですが、API の場合は、このようなデータそのものを返してくれます。
このように、API を使うと、サーバーからデータを取得して、それを使ってプログラムを作ることができます。
OpenAI の API を使う
今日は、ChatGPT の開発元である OpenAI の API を使って、AI とやり取りしてみましょう。
先ほどの天気予報 API のように誰でも使えるわけではなく、「API キー」という認証情報が必要です。
これは、サービスを使うための「会員証」のようなものです。このキーがあるおかげで、使用料金などがきちんとその人に請求されます!
ちなみに、OpenAI の API キーは、このような感じで取得します。


今回のワークショップでは、運営側で準備した API キーを使用します。なので、皆さんに請求されることはありません!
(API キーを発行した、ハイスクールPython の運営に請求が行きます。連打しないでくださいね 😂 🥺 )
※ この Web サイトに載せず、この Google Meet のチャットに載せます!
また、もし皆さんが自分で API キーを取得したい場合は、キーは流出しないように注意しましょう。万が一流出した場合は、すぐに消しましょう。先ほどのキーも、このワークショップが終わったらすぐに消します。
チャットと API での違いを見てみる
ChatGPT のようなチャット(Web ブラウザ版)
皆さんの中にも、使ったことがある方は多いと思います。これは、Web ブラウザ版の ChatGPT です。チャット形式で AI とやりとりします。

メリット:
- 簡単に始められる
 - プログラミング知識が不要
 
デメリット:
- 自動化できない
 - 他のプログラムと連携しにくい
 
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))
このように返ってくるはずです!

では、実際に AI を使って遊んでみましょう!
🔮 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 のチャットに、何かリクエストを送ってみましょう!
10:15 まで
まとめと質問対応 🌟
今日は短い時間でしたが、Python の基本から AI との連携まで体験できました!
今日学んだこと
- Python の基本文法(変数、条件分岐、繰り返し)
 - AI API の使い方
 - プログラムと AI を組み合わせたプログラムの作り方
 
2 学期からの Python 演習に向けて
- 今日の内容は Python の入り口部分です。
 - 2 学期からは、もっと詳しく Python の文法を学んでいきます。
 - プログラミングが上達する一番の近道は、自分で興味を持って色々なものを作ってみることです。
 
ハイスクール Python で続きを学ぼう
ハイスクール Python では、今日学んだ内容をさらに深く、楽しく学べるコンテンツを用意しています。
- YouTube チャンネル: 分かりやすい解説動画
 - ウェブサイト: 体系的なプログラミング講座(このサイトです!)
 - ワークショップ: 定期的な実習イベント(今回のような形)
 
プログラミングの世界はまだまだ奥が深いです。今日をきっかけに、ぜひ Python の学習を続けてみてください! 🚀