プログラミングの講義
変数・分岐・繰り返しから、アルゴリズムとテストまでを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 = price * count | 360 |
total = total + 20 | 380 |
整数・小数・文字列など、値には種類があります。数値の 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日。本文・事例・確認問題は本サイト独自の教材です。公式資料の転載や公的機関による監修を示すものではありません。