Python確認テスト第2問では、「if文」と「条件分岐」について確認します。
条件分岐とは、条件によって実行する処理を変える仕組みです。
例えば、
「テストの点数が60点以上なら合格、60点未満なら不合格」
といった判定をプログラムで行うときに使います。
Pythonでは、主に if、elif、else を使って条件分岐を記述します。
問題を見たら、すぐに答えを確認せず、まずは自分で実行結果を考えてみましょう。
第2問:このPythonコードの実行結果は?
次のプログラムを実行すると、何が表示されるでしょうか。
score = 60
if score > 60:
print("合格")
else:
print("不合格")
次の4つから選んでください。
A. 合格
B. 不合格
C. 60
D. エラーになる
答えを決めてから、下の解説を確認してみましょう。
正解
正解は「B. 不合格」です。
実行結果は次のようになります。
不合格
なぜ「不合格」になるの?
ポイントは、次の条件です。
score > 60
> は、
「60より大きい」
という意味です。
今回の score は60なので、
60 > 60
は成立しません。
そのため、if の処理ではなく、else の処理が実行されます。
print("不合格")
結果として、「不合格」と表示されます。
「以上」にしたい場合はどうする?
60点ちょうども合格にしたい場合は、>= を使います。
score = 60
if score >= 60:
print("合格")
else:
print("不合格")
実行結果:
合格
>= は、
「以上」
という意味です。
そのため、
60 >= 60
は成立します。
> と >= の違い
条件分岐では、比較演算子の違いがとても重要です。
| 演算子 | 意味 |
|---|---|
> | より大きい |
< | より小さい |
>= | 以上 |
<= | 以下 |
== | 等しい |
!= | 等しくない |
今回の問題では、
score > 60
と、
score >= 60
の違いを理解することがポイントです。
if文とは?
if は、
「もし条件が成立したら、この処理を実行する」
という意味で使います。
基本的な書き方は次のとおりです。
if 条件:
処理
例えば、
age = 18
if age >= 18:
print("18歳以上です")
実行結果:
18歳以上です
条件が成立した場合だけ、インデントされた処理が実行されます。
elseとは?
else は、
ifの条件が成立しなかった場合に実行する処理
です。
age = 16
if age >= 18:
print("18歳以上です")
else:
print("18歳未満です")
実行結果:
18歳未満です
16は18以上ではないため、else 側の処理が実行されます。
elifとは?
条件が2つより多い場合は、elif を使えます。
例えば、テストの成績を判定してみましょう。
score = 75
if score >= 90:
print("A")
elif score >= 70:
print("B")
else:
print("C")
実行結果:
B
75は90以上ではありませんが、70以上という条件は成立します。
そのため、「B」と表示されます。
条件は上から順番に確認される
if文では、条件は上から順番に判定されます。
例えば、
score = 95
if score >= 60:
print("C")
elif score >= 70:
print("B")
elif score >= 90:
print("A")
実行結果は、
C
になります。
最初の、
score >= 60
が成立した時点で、その後の elif は確認されません。
正しく判定したい場合は、
score = 95
if score >= 90:
print("A")
elif score >= 70:
print("B")
elif score >= 60:
print("C")
のように、条件の順番にも注意する必要があります。
もう1問挑戦してみよう
次のプログラムの実行結果を考えてみてください。
age = 20
if age >= 18:
print("成人")
else:
print("未成年")
何が表示されるでしょうか。
A. 成人
B. 未成年
C. 20
D. エラー
正解
正解は、
A. 成人
です。
20は18以上なので、
age >= 18
という条件が成立します。
そのため、
print("成人")
が実行されます。
さらに挑戦:== の意味
次のプログラムでは、何が表示されるでしょうか。
number = 10
if number == 10:
print("同じです")
else:
print("違います")
正解は、
同じです
です。
== は、
2つの値が等しいかどうかを比較する演算子
です。
ここで注意したいのが、
number = 10
と、
number == 10
の違いです。
= は代入、== は比較です。
よくある間違い
初心者がif文を書くときによくある間違いを確認しておきましょう。
コロンを書き忘れる
間違った例:
if score >= 60
print("合格")
正しくは、
if score >= 60:
print("合格")
です。
インデントを忘れる
間違った例:
if score >= 60:
print("合格")
正しくは、
if score >= 60:
print("合格")
です。
Pythonでは、if文の中で実行する処理をインデントします。
= と == を混同する
score = 60
は代入です。
score == 60
は比較です。
意味が異なるので注意しましょう。
今回のポイント
Python確認テスト第2問で覚えておきたいポイントは、次の4つです。
ifは条件が成立した場合に処理を実行するelseは条件が成立しなかった場合に使う>と>=は意味が異なる- 条件は上から順番に判定される
特に、
score > 60
と、
score >= 60
の違いは、テストや実際のプログラムでもよく出てきます。
まとめ
今回は、Pythonのif文と条件分岐について確認しました。
条件分岐を理解すると、
- 点数による合否判定
- 年齢による判定
- ゲームの勝敗
- ログイン状態の確認
など、条件に応じて処理を変更できるようになります。
第1問で学んだ変数と組み合わせることで、より実用的なプログラムを書けるようになります。
今回の問題が理解できたら、次は繰り返し処理を使った問題に挑戦してみましょう。
次回:Python確認テスト第3問|for文と繰り返し処理