情報科目学習サイト

ホームに戻る

学習分野

プログラミングの講義

変数・分岐・繰り返しから、アルゴリズムとテストまでをPythonの例で学びます。

要点を読み、具体例で考え、確認問題で振り返ってから問題演習に進みましょう。

情報Ⅰの学習を中心とした入門講義 · 2026年版

目次

関連する問題演習へ

1.プログラムは「手順」を伝えるもの

プログラミングは、目的を達成する処理を、コンピュータが実行できる形で記述することです。例えば「点数の一覧から合格者の人数を求める」には、合格の基準を決め、点数を一つずつ調べ、条件を満たした回数を数える手順が必要です。

この手順をアルゴリズムと呼びます。同じ目的でも複数の手順が考えられます。まず日本語で整理し、次にコードにすると、何をしているか説明しやすくなります。

  • 入力:どのようなデータを受け取るか。
  • 処理:何を計算し、どの条件で判断するか。
  • 出力:何を結果として示すか。

この講義ではPython 3を使います。コード例は読むための教材です。実行するときは、学校などで利用しているPython 3環境にコピーしてください。

2.変数と順次処理

変数は値を名前で扱うために使います。処理を上から順番に実行するのが順次処理です。代入の記号 = は、数学の「両辺が等しい」という主張とは異なります。右側を計算してから、左側の変数に値を代入します。

price = 120
count = 3
total = price * count
total = total + 20
print(total)

出力は 380 です。120円を3個で360円、その後に20円を加えています。total = total + 20 は、更新前の値を使って新しい値を求めています。

totalの値を追う
実行した処理処理後の値
total = price * count360
total = total + 20380

整数・小数・文字列など、値には種類があります。数値の 3 と文字列の "3" は同じ扱いではありません。入力を計算に使う際は、値の種類にも注意します。

3.条件分岐で処理を選ぶ

「80点以上なら合格、それ以外なら再挑戦」のように、条件によって処理を変えるのが分岐です。Pythonでは if と else を使えます。

score = 80
if score >= 80:
    print("合格")
else:
    print("再挑戦")

この例の出力は 合格 です。>= は「以上」、> は「より大きい」です。条件を score > 80 にすると、80点は合格になりません。

Pythonでは字下げ(インデント)で処理のまとまりを示します。上の例では、条件が真のときに最初の print、偽のときに二つ目を実行します。値の比較には == を使い、代入の = と区別します。

4.リストと繰り返し

複数の点数をまとめるにはリストを使えます。リストの要素を順番に取り出して、同じ処理を行うのが反復です。

scores = [62, 85, 80, 74]
passed = 0
for score in scores:
    if score >= 80:
        passed = passed + 1
print(passed)

62、85、80、74を順に調べ、85と80のときだけ人数を増やします。出力は 2 です。処理を追うと、passed は0→0→1→2→2と変わります。

Pythonのリストの添字は0から始まります。scores[0] は62、scores[1] は85です。要素が4個なら最後の添字は3です。range(4) は0、1、2、3を順に生成し、終わりの4は含みません。

5.関数とアルゴリズム

処理に名前を付けてまとめたものを関数として利用できます。入力を引数で受け取り、結果を戻り値として返すようにすると、異なるデータでも同じ処理を使えます。

def count_passed(scores, threshold):
    count = 0
    for score in scores:
        if score >= threshold:
            count = count + 1
    return count

print(count_passed([62, 85, 80, 74], 80))

出力は 2 です。合格基準を引数にしたので、呼び出すときに基準を変えられます。return は計算結果を呼び出し元に返し、print は表示します。

値を探す方法にも違いがあります。線形探索は先頭から順に調べる方法です。二分探索は整列された範囲を半分ずつ絞ります。二分探索を使うには、大小を比較でき、データが適切な順序で並んでいるという前提が必要です。

6.動けば完成、ではない

文法の誤りがなくても、条件や計算式が目的と違えば正しい結果にはなりません。期待する結果を先に決め、実際の出力と比べます。

  • 通常の入力:点数が複数あるとき、人数は正しいか。
  • 境界の入力:79点、80点、81点をそれぞれ正しく判定できるか。
  • 空の入力:点数が0件なら、合格者数は0になるか。
  • 想定外の入力:文字列や範囲外の点数をどう扱う仕様にするか。

上の関数は、与えられた点数が数値であることを前提にしています。実際のシステムでは入力の検証も必要です。値の変化を紙に書いて追跡する方法も、不具合の発見に役立ちます。

実践コーディングの教材へ

7.確認してみよう

答えを見る前に、理由も考えてみましょう。

① x = 4 の後に x = x * 3 + 2 を実行すると?

14です。更新前の4で右辺を計算し、4×3+2=14を代入します。

② 「80点以上」の判定で、79・80・81点を試すのはなぜ?

境界の直前・一致・直後を確認できるためです。「以上」と「より大きい」の取り違えに気付きやすくなります。

③ count_passed([60, 90, 75], 75) の戻り値は?

2です。90と75が条件を満たします。入力するリストや基準を変えても、同じ関数を再利用できます。

問題演習

講義で理解したことを、正誤問題・四択問題で確かめましょう。

すべての問題集を見る

参考記事

資料確認日:2026年10月14日。本文・事例・確認問題は本サイト独自の教材です。公式資料の転載や公的機関による監修を示すものではありません。