1. プログラミングを始めよう!

目次

この講座で使用する Google Colab の URL

1. プログラミングを始めよう! (Google Colab)

演習課題

Ex.1. プログラミングを始めよう! (Google Colab)

この講座で使用する Python, Jupyter Notebook のファイルと実行環境

Lesson 1: high-school-python-code (GitHub)

1.1 プログラミングって何?身近な例で考える

「プログラミング」と聞くと、何を思い浮かべるでしょうか?

黒い画面に色々な文字が書かれているものを想像するかもしれません。難しそうな印象ですが、私たちが普段行っている「考え方」や「作業の進め方」と、実はとても似ています。

プログラミングの基本的な考え方

プログラミングとは、コンピュータに「やってほしいこと」を順序立てて伝える方法です。例えば、料理のレシピも一種のプログラムと考えることができます:

  1. 材料を用意する(データの準備)
  2. 野菜を切る(データの加工)
  3. フライパンを温める(環境の準備)
  4. 調味料を加える(データの追加)
  5. 火加減を調整する(処理の制御)

プログラミングは、このような日常的な思考をコンピュータ用の言語で表現する作業だと考えることができます。プログラミングは問題解決であって Python のようなプログラミング言語は、そのための道具です。

プログラミングの特徴

プログラミングというよりは、論理的に物事を考えるにあたっての特徴ですが、これらのようなことを意識します。

  1. 順序が重要

    • 手順を間違えると望む結果が得られません
      • 例:料理で「炒める」前に「切る」が必要なようにです。
    • コンピュータは指示された通りにしか動きません
      • 文脈から判断して動くようなことはできません。ただ、生成 AI では可能なことがあります。
    • 人間なら気付くような「当たり前」も、明確に指示する必要があります
      • 逆にいうと、そのため「常に意図した通りに動かす」ということができます。
  2. 条件分岐がある

    • 状況によって異なる行動をとります
      • 例:天気予報アプリで、気温が 20 度以上なら「Tシャツ」, 20 度未満なら「ジャケット」など
    • 複数の条件を組み合わせた複雑な判断も可能です
      • 例:気温が 20 度以上で雨が降っていたら「傘とTシャツ」
      • 気温が 20 度以上で晴れなら「Tシャツのみ」
      • 気温が 20 度未満で雨なら「傘とジャケット」
      • 気温が 20 度未満で晴れなら「ジャケットのみ」
  3. 繰り返し処理がある

    • 同じ作業を何度も行うことがあります
      • 例:全ての商品の金額を足して、合計金額を計算する
    • 大量のデータを処理する際に特に重要です
      • 例えば、10 人のデータを集計するのであれば手計算でも可能ですが、1000 人であればコンピュータでやるのが効率的です
    • コンピュータは疲れないので、何百万回でも正確に繰り返せます

身近にあるプログラミングの例

私たちの身の回りには、プログラミングを使った製品やサービスが数多く存在します。これらは全て、プログラマーが書いたコードによって動いています。例えば:

  • スマートフォンのアラーム

    • 「設定した時間になったら音を鳴らす」
    • 「スヌーズボタンを押したら、10 分後にまた鳴らす」
    • 「音量や音の種類を設定に応じて変える」
    • 「複数のアラームを管理して、重複した場合も適切に処理する」
  • 電車の自動改札

    • 「IC カードをタッチしたら、残高を確認する」
    • 「残高が足りていれば、ゲートを開ける」
    • 「定期券の有効期限を確認する」
    • 「利用履歴を記録して、後で確認できるようにする」
  • オンラインショッピング

    • 「カートに商品を入れたら、合計金額を計算する」
    • 「クーポンコードを適用したら、割引を反映する」
    • 「注文ボタンを押したら、在庫を確認する」
    • 「配送先の住所から送料を自動計算する」
  • スマホゲームやコンシューマーゲーム

    • 「敵に当たったらライフが減る」
    • 「アイテムを取得したらスコアが増える」
    • 「セーブデータを保存・読み込みする」
    • 「他のプレイヤーとオンラインで対戦する」

なぜプログラミングを学ぶの?

プログラミングを学ぶことで、以下のような力が身につきます:

  1. 論理的思考力

    • 物事を順序立てて考える力
    • 問題を小さく分割して解決する力
    • 原因と結果の関係を理解する力
    • データに基づいて判断する力
  2. 創造力

    • 自分のアイデアをカタチにする力
    • 新しい解決方法を考える力
    • 既存の技術を組み合わせて新しいものを作る力
    • ユーザーのニーズを理解して実現する力
  3. デジタル社会への理解

    • テクノロジーの仕組みを理解する力
    • 情報社会で活躍するための基礎力
    • デジタルツールを効果的に活用する力
    • 情報セキュリティの重要性を理解する力
  1. 問題解決能力

    • 課題を発見する力
    • 解決策を考え出す力
    • 効率的な方法を見つける力
    • PDCA サイクルを回す力
  2. コミュニケーション力

    • チームで協力して開発する力
    • 技術的な内容を分かりやすく説明する力
    • 他者のコードを理解し改善する力
    • フィードバックを建設的に行う力

1.2 高校生が学ぶ言語として Python を選ぶ理由

世界には JavaScript, Java, C++ など、たくさんのプログラミング言語があります。その中で、なぜ Python を学ぶのかについて説明します。

Python の特徴

  1. 読みやすい・書きやすい
    • 英語の文章のような分かりやすい命令文
    • カッコや記号が少なくシンプル
    • インデント(行の字下げ)で処理のまとまりを表現

Python での書き方

if x > 0:
    print("正の数です")

他の言語 (JavaScript) での書き方

if (x > 0) {
  console.log('正の数です')
}
  1. 幅広い活用分野

    • データサイエンス
      • 数学の知識を活かせます!データ分析の入り口は、このサイトでもやります。統計でよく使われる言語には R や Julia などもあります。
    • AI・機械学習
      • 画像認識、自然言語処理など
    • Web アプリケーション開発
      • Django, Flask, FastAPI などが有名です
  2. 充実した学習環境

    • 豊富な学習教材とコミュニティ
      • Python を使っている人口が多いので、ライブラリも充実しています。
    • Google Colab で無料でスタート
    • 日本語のエラーメッセージ対応

Python を使った実例

  • スマートフォンアプリ:Instagram や Pinterest のサーバー側の処理
  • 科学計算:NASA(アメリカ航空宇宙局)での研究
  • AI 開発:Google や OpenAI での生成 AI の開発や機械学習

1.3 ブラウザで簡単に実行&共有!Google Colab の使い方

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

Google Colab とは?

Google Colab(グーグル コラボラトリー)は、Google が提供する無料のクラウドサービスです。Python のコードを書いて実行できる「ノートブック」という形式で、プログラミングを学べます。

Google Colab の始め方

  1. 準備するもの

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

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

まず、Google アカウントにログインします。

そして、colab.research.google.com にアクセスし、「ノートブックを新規作成」をクリックします。

Google Colab のログイン画面

すると、以下のような画面が表示されます。適当に名前をつけて保存すると、

Google Colab のノートブック作成画面

Google Drive に Colab Notebooks というフォルダが作成され、その中に作成したノートブックが保存されます。

Google Colab のノートブック作成画面

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

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

Google Colab の共有画面

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

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

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

1.4 print 関数で文字や数字を表示してみる

いよいよ最初のプログラミングです!まずは print 関数を使って、画面に文字や数字を表示してみましょう。

print 関数の基本

print 関数の基本的な使い方

print("Hello, World!")  # 文字列を表示 - Hello, World!
print(42)  # 数値を表示 - 42
print("私は", 16, "歳です")  # 複数の値を表示 - 私は 16 歳です

print 関数のルール

  1. 文字列の表示

    • 文字列は ""(ダブルクォート)か ''(シングルクォート)で囲む
    • 日本語も OK!

    文字列の表示の例

    print("こんにちは")  # こんにちは
    print('Hello')  # Hello
    
  2. 数値の表示

    • 数値はそのまま書く
    • 計算式も書ける

    数値の表示の例

    print(42)  # 42
    print(3 + 5)  # 8
    
  3. 複数の値の表示

    • カンマ,で区切って複数の値を表示
    • 自動的にスペースが入る

    複数の値を表示する例

    print("私の名前は", "太郎", "です")  # 私の名前は 太郎 です
    print("計算結果:", 3 * 4)  # 計算結果: 12
    

1.5 四則演算とそれ以外のいろいろな計算

Python は強力な計算機としても使えます。基本的な計算から、ちょっと複雑な計算まで見ていきましょう。

基本的な四則演算

四則演算の基本的な使い方

# 足し算
print(5 + 3)  # 8

# 引き算
print(5 - 3)  # 2

# 掛け算
print(5 * 3)  # 15

# 割り算
print(5 / 3)  # 1.6666...

他の色々な計算

他の色々な計算

# べき乗 (累乗)
print(2 ** 3)  # 2 の 3 乗 = 8

# 余りを求める (剰余演算)
print(7 % 3)   # 7 ÷ 3 の余り = 1

# 整数の商を求める (切り捨て除算)
print(7 // 3)  # 7 ÷ 3 の商 = 2

計算の優先順位

数学と同じように、計算には優先順位があります:

  1. ():カッコの中が最優先
  2. **:べき乗
  3. *, /, //, %:掛け算、割り算
  4. +, -:足し算、引き算

計算の優先順位の例

print(2 + 3 * 4)  # 14 (3 * 4 が先)
print((2 + 3) * 4)  # 20 (2 + 3 が先)

よくある計算例

よくある計算例

# 平均値を求める
print((80 + 95 + 90) / 3)  # 88.33...

# 消費税を計算する (10%)
print(1000 * 0.1)  # 100

# 割引後の価格を計算する (20% オフ)
print(1000 * 0.8)  # 800

1.6 コメントを書いてコードを読みやすくする

プログラミングで大切なのは、コードを「分かりやすく」することです。そのための便利な道具が「コメント」です。

コメントは、プログラムの実行時に無視されます。

コメントの種類

  1. 1 行コメント(単行コメント)

    1 行コメントの例

    # これは 1 行コメントです
    
    print("Hello")  # 行の右側にも書けます
    
  2. 複数行コメント(ブロックコメント)

    複数行コメントの例

    '''
    これは
    複数行の
    コメントです
    '''
    
    """
    これも
    複数行の
    コメントです
    """
    

良いコメントの書き方

  1. 目的を説明する

    コードが「何のために」書かれているのかを明確にします。「なぜそのような方法でコードを書いたのか」は、コードそのものから読み取るにも限界があります。そのため、コメントで目的を説明すると良いでしょう。

    目的を説明する例

    # 5 教科の試験の平均点を計算する
    # 数学 (80点), 英語 (90点), 国語 (85点), 理科 (92点), 社会 (88点)
    score = (80 + 90 + 85 + 92 + 88) / 5
    print(f"5教科の平均点: {score}点")
    
  2. 難しい処理の説明

    複雑な計算や処理の意図を説明します。

    難しい処理の説明

    # 商品の合計金額を計算
    # 1. 本体価格に消費税 10% を加算
    # 2. 1000 円以上で 5% 割引を適用
    price = 1200  # 本体価格
    tax = price * 0.1  # 消費税の計算
    subtotal = price + tax  # 税込価格
    
    # 1000 円以上なら 5% 割引を適用
    if subtotal >= 1000:
        discount = subtotal * 0.05
        total = subtotal - discount
    
  3. TODO(やるべきこと)を書く

    将来の改善点や追加すべき機能を記録します。

    TODO の例

    # TODO: 後でエラー処理を追加する
    # - 負の数値のチェック
    # - 100 点を超える値のチェック
    # - 数値以外が入力された場合の処理
    score = int(input("点数を入力: "))
    print(f"入力された点数: {score}点")
    
  4. 警告や注意点

    自分や他の人のミスを防ぐために、注意点をコメントで書いておくと良いです。

    警告や注意点の例

    # NOTE: この API キーは開発環境専用です
    # 本番環境では、セキュリティの観点から、環境変数から読み込むこと!
    API_KEY = "dev_1234567890"
    

コメントを書くときの注意点

  1. 当たり前のことはコメントしない

    これはこれは自分自身や一緒に開発をしている人たちの現在の習得レベルにもよるのですが、後から読んだ際に分かりやすいようにコメントを書いておくことで、時間の短縮にもなります。

    当たり前のことはコメントしない

    x = 10  # x に 10 を代入
    x = x + 1  # x に 1 を足す
    
  2. コードの内容と矛盾するコメントを書かない

    コードの内容と矛盾するコメントは、混乱を招いてしまうこともあるので注意です。

    コードの内容と矛盾するコメントの例

    # 悪い例
    # 税率 8% で計算
    tax_rate = 0.1  # 実際は 10% で計算している
    
    # 良い例
    # 2023 年 10 月現在の税率 (10%) で計算
    tax_rate = 0.1
    
  3. 適切な量を心がける

    • 多すぎるコメントはコードの可読性(読みやすさ)を下げてしまいます。
    • 重要なポイントに絞ってコメントを書くことが重要です。
    • コードの修正時はコメントも更新することを忘れずに行いましょう。
  4. コメントよりもコードの改善を優先する

    基本的には、コード自体を分かりやすくすることを優先しましょう。コメントは、コードの意図を説明するために使うと良いです。

    コメントよりもコードの改善を優先する

    age = 22
    
    # 悪い例
    # 年齢が 18 以上なら成人と表示する
    if age >= 18:
        print("成人です")
    
    # 良い例
    ADULT_AGE = 18
    if age >= ADULT_AGE:
        print("成人です")
    

1.7 プログラムを実行する流れを理解しよう

プログラムは、書かれた順番に従って上から下へと実行されていきます。この実行の流れを理解することは、プログラミングの基本になります。

プログラムの実行順序

プログラムの実行順序の例

# 1 番目に実行
print("おはよう!")

# 2 番目に実行
print("今日の予定:")

# 3 番目に実行
print("1. 勉強")
print("2. 部活")
print("3. 買い物")

プログラムの実行の特徴

  1. 順番に実行

    • 基本的に上から下へ
    • 1 行ずつ処理される
  1. エラーが起きたら停止

    エラーが起きたら停止する例

    print("正常な行")
    print(未定義の変数)  # ここでエラー
    print("ここは実行されない")
    
  1. 無視されるもの
    • コメント
    • 空行
    • インデント(行頭の空白)のみの行

まとめ:プログラムの実行の流れ

  1. ファイルの先頭から開始
  2. 1行ずつ順番に実行
  3. エラーがあれば、その時点で停止
  4. ファイルの最後まで実行したら終了

ひとまずは、これらのルールを理解しておくと良いです!

これからどんどんプログラムを読んだり書いたりして、慣れていきましょう!

Ex.1 自分の名前や好きなものを表示する自己紹介プログラム

実際に自己紹介プログラムを作ってみましょう!

自己紹介プログラムの例

print("━━━ 自己紹介 ━━━")
print("名前:山田太郎")
print("年齢:16歳")
print("好きな教科:数学、情報")
print("趣味:バスケットボール")

チャレンジ!

  • 自分の情報に書き換えてみましょう
  • 好きな食べ物や将来の夢なども追加してみましょう
  • 区切り線を別の文字に変えてみましょう

Ex.2 表示メッセージを変えたり、計算結果を表示したりして試してみる

学んだことを組み合わせて、オリジナルのプログラムを作ってみましょう!

1 日の予定を計算するプログラム

print("━━━ 1 日の予定時間 ━━━")
print("学校:", 6, "時間")
print("部活:", 2, "時間")
print("勉強:", 3, "時間")
print("━━━━━━━━━━━━━━━")
print("合計時間:", 6 + 2 + 3, "時間")

チャレンジ!

  • 自分の 1 日の予定を入れてみましょう
  • 睡眠時間を追加して 24 時間から引いてみましょう
  • 1 週間の予定を計算してみましょう

まとめ

この章では、プログラミングの基本と、Python での最初の一歩を学びました。 難しく感じることもあるかもしれませんが、少しずつ慣れていきましょう。 プログラミングの世界には、まだまだ面白いことがたくさん待っています。どんどん進んでいきましょう!