こんにちは、Tech Samuraiです!
前回の記事「【Python入門 #3】コンピュータの真骨頂!「演算子」でデータを計算・操作しよう」では、変数を使って様々な計算を行う方法を学びましたね。
これまでの私たちのプログラムは、書かれたコードを上から下へ、一本道を進むように忠実に実行するだけでした。しかし、本格的なプログラムは、状況に応じて進む道を変える**「判断力」**を持っています。今回のテーマは、その判断力をプログラムに与えるための魔法、「比較演算子」と「if文」です。
これをマスターすれば、あなたはプログラムに「もし〜ならば、こう動け。そうでなければ、こう動け」という、思考のルールを教え込むことができるようになります。さあ、あなたのコードに魂を吹き込みましょう!
ステップ1:2つの値を比べる「比較演算子」
「if文」を学ぶ前に、まず「もし〜ならば」の「〜」にあたる**条件**を作る方法を知る必要があります。そのために使うのが**比較演算子**です。
算術演算子(+
や-
)が計算結果として数値を返したのに対し、比較演算子は**「その比較が正しいか、間違っているか」**を、特別なデータ型である**ブール型 (bool
)** のTrue
(真)またはFalse
(偽)で返します。
以下が、Pythonで使われる主な比較演算子です。
演算子 | 意味 | 使用例 (a = 10) | 結果 |
---|---|---|---|
== | 等しい | a == 10 | True |
!= | 等しくない | a != 10 | False |
> | より大きい | a > 5 | True |
< | より小さい | a < 5 | False |
>= | 以上(大きいか、または等しい) | a >= 10 | True |
<= | 以下(小さいか、または等しい) | a <= 20 | True |
【超重要ポイント】
代入の=
が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 >= 18
はTrue
なので、「あなたは成人です。」と表示されます。もし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 >= 90
はFalse
。次のelif score >= 80
がTrue
になるので、「評価: 良」と表示され、その後のelif
とelse
はチェックされずに処理を抜けます。
実践!インタラクティブな年齢確認プログラム
最後に、ユーザーに年齢を入力してもらい、その年齢に応じてメッセージを変える、インタラクティブなプログラムを作ってみましょう。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文について探検しました。
- 比較演算子 (
==
,!=
,>
,<
など) が、True
かFalse
の結果を返すこと。 - if文が、その
True
/False
の結果に応じて、処理の流れを分岐させること。 - インデントが、処理のかたまりを示すための重要なルールであること。
else
やelif
を使うことで、より複雑な条件分岐ができること。
if文をマスターしたことで、あなたのプログラムは一本道をただ進むだけでなく、様々な状況に対応できる、柔軟な思考力を手に入れました。
さて、条件に応じて一度だけ処理を分岐できるようになりましたが、「もし〜ならば、この処理を10回繰り返せ」といった**反復処理**ができたら、さらに便利だと思いませんか? 次回は、退屈な繰り返し作業をプログラムに任せるための**「forループとwhileループ」**の世界を探検します。お楽しみに!
コメント