【Python入門 #4】プログラムに「判断力」を!比較演算子とif文で条件分岐をマスターしよう

こんにちは、Tech Samuraiです!
前回の記事「【Python入門 #3】コンピュータの真骨頂!「演算子」でデータを計算・操作しよう」では、変数を使って様々な計算を行う方法を学びましたね。

これまでの私たちのプログラムは、書かれたコードを上から下へ、一本道を進むように忠実に実行するだけでした。しかし、本格的なプログラムは、状況に応じて進む道を変える**「判断力」**を持っています。今回のテーマは、その判断力をプログラムに与えるための魔法、「比較演算子」「if文」です。

これをマスターすれば、あなたはプログラムに「もし〜ならば、こう動け。そうでなければ、こう動け」という、思考のルールを教え込むことができるようになります。さあ、あなたのコードに魂を吹き込みましょう!


ステップ1:2つの値を比べる「比較演算子」

「if文」を学ぶ前に、まず「もし〜ならば」の「〜」にあたる**条件**を作る方法を知る必要があります。そのために使うのが**比較演算子**です。

算術演算子(+-)が計算結果として数値を返したのに対し、比較演算子は**「その比較が正しいか、間違っているか」**を、特別なデータ型である**ブール型 (bool)** のTrue(真)またはFalse(偽)で返します。

以下が、Pythonで使われる主な比較演算子です。

演算子意味使用例 (a = 10)結果
==等しいa == 10True
!=等しくないa != 10False
>より大きいa > 5True
<より小さいa < 5False
>=以上(大きいか、または等しい)a >= 10True
<=以下(小さいか、または等しい)a <= 20True

【超重要ポイント】
代入の=が1つなのに対し、比較の「等しい」は==とイコールを2つ重ねる、と覚えてください。これは、プログラミング初心者が最も間違えやすい点の一つです!

age = 20

# 比較演算子の結果は True か False になる
print(f"age == 20 の結果は?: {age == 20}")
print(f"age > 30 の結果は?: {age > 30}")
print(f"age != 30 の結果は?: {age != 30}")

実行結果:

age == 20 の結果は?: True
age > 30 の結果は?: False
age != 30 の結果は?: True

ステップ2:「もし〜ならば」を実行する「if文」

条件を作れるようになったら、次はいよいよその条件を使ってプログラムの流れを分岐させる**if文**の登場です。

基本的な構文は非常にシンプルです。

if 条件式:
    # 条件式の結果が True の場合に、ここの処理が実行される
    # この字下げ(インデント)が非常に重要!

【Python最大のルール:インデント】
if 条件式:の後のコロン:に続く行は、**半角スペース4つ(またはTab1つ)の字下げ(インデント)**をします。このインデントされたブロックが、「もし条件が正しかった場合に実行される処理のかたまり」と見なされます。このインデントが、Pythonの文法における最大の特徴です。

例えば、年齢が18歳以上なら「成人です」と表示するプログラムはこう書きます。

age = 20

if age >= 18:
    print("あなたは成人です。")

print("プログラムを終了します。")

ageが20の場合、条件age >= 18Trueなので、「あなたは成人です。」と表示されます。もしageが15だった場合、条件はFalseなので、インデントされたprint文はスキップされ、最後の行だけが実行されます。


ステップ3:選択肢を増やす「else」と「elif」

else(そうでなければ)

「もし条件がFalseだった場合に、別の処理をしたい」というときに使うのがelseです。

age = 15

if age >= 18:
    print("あなたは成人です。")
else:
    # ifの条件がFalseだった場合に、こちらが実行される
    print("あなたは未成年です。")

elif(そうでなくて、もしこうならば)

さらに選択肢を増やしたい場合はelif (else ifの略) を使います。複数の条件を上から順番にチェックしていき、最初にTrueになったブロックだけを実行して、残りはスキップします。

例えば、テストの点数で成績を判定するプログラムを見てみましょう。

score = 85

if score >= 90:
    print("評価: 優")
elif score >= 80:
    print("評価: 良")
elif score >= 70:
    print("評価: 可")
else:
    print("評価: 不可")

この場合、scoreは85なので、最初のif score >= 90False。次のelif score >= 80Trueになるので、「評価: 良」と表示され、その後のelifelseはチェックされずに処理を抜けます。


実践!インタラクティブな年齢確認プログラム

最後に、ユーザーに年齢を入力してもらい、その年齢に応じてメッセージを変える、インタラクティブなプログラムを作ってみましょう。input()関数を使うと、ユーザーからのキーボード入力を受け取れます。

# input()で受け取った文字を、int()で整数に変換する
input_age_str = input("あなたの年齢を入力してください: ")
age = int(input_age_str)

print("---") # 区切り線

if age >= 20:
    print("お酒やタバコを楽しめますね。")
elif age >= 18:
    print("成人年齢ですね。選挙権があります。")
elif age < 0:
    print("年齢はマイナスにはなりませんよ!")
else:
    print("あなたは未成年ですね。")

このプログラムを実行して、色々な年齢を入力して試してみてください。プログラムがあなたの入力に応じて、賢く判断を変える様子が分かるはずです。


まとめ

今回は、プログラムに「判断力」を与えるための、比較演算子とif文について探検しました。

  • 比較演算子 (==, !=, >, <など) が、TrueFalseの結果を返すこと。
  • if文が、そのTrue/Falseの結果に応じて、処理の流れを分岐させること。
  • インデントが、処理のかたまりを示すための重要なルールであること。
  • elseelifを使うことで、より複雑な条件分岐ができること。

if文をマスターしたことで、あなたのプログラムは一本道をただ進むだけでなく、様々な状況に対応できる、柔軟な思考力を手に入れました。

さて、条件に応じて一度だけ処理を分岐できるようになりましたが、「もし〜ならば、この処理を10回繰り返せ」といった**反復処理**ができたら、さらに便利だと思いませんか? 次回は、退屈な繰り返し作業をプログラムに任せるための**「forループとwhileループ」**の世界を探検します。お楽しみに!

コメント

タイトルとURLをコピーしました