if文で条件分岐を作ろう

学習の目標

本章では、以下の内容を学習します。

  • if文の基本構文と使い方を理解する
  • 条件式の書き方と真偽値の判定方法を習得する
  • プログラムに判断力を持たせる方法を学ぶ
  • 比較演算子を使った様々な条件の作り方を理解する
  • 実用的な条件分岐プログラムの作成方法を習得する

プログラムに判断力を持たせよう

これまでのプログラムは、決められた処理を上から順番に実行するだけでした。 しかし、実際のアプリケーションでは「もし○○なら△△する」というような判断が必要になります。

例えば、年齢を入力してもらって成人かどうかを判定したり、テストの点数によって合格・不合格を判定したりする場面を考えてみましょう。 このような場面では、プログラムが条件を確認して、その結果に応じて異なる処理を実行する必要があります。

if文は、このような条件による分岐処理を実現するための基本的な構文です。 if文を使うことで、プログラムに判断力を持たせることができるようになります。

プログラミングにおいて条件分岐は非常に重要な概念です。 これを理解できれば、より柔軟で実用的なプログラムを作れるようになります。

if文の基本構文

if文の基本的な構文は以下のようになります。

if 条件式:
    実行する処理

if文はifというキーワードで始まり、その後に条件式を書きます。 条件式の後には必ずコロン(:)を付けます。 そして、条件が満たされた時に実行したい処理を、**インデント(字下げ)**を付けて記述します。

Pythonでは、このインデントが非常に重要です。 インデントによって、どの処理がif文の中に含まれるかが決まります。 通常、スペース4つ分のインデントを使用します。

VS Codeでは、Tabキーを押すと自動的に適切なインデントが設定されるので便利です。

最初のif文を書いてみよう

それでは、実際にif文を使った簡単なプログラムを作成してみましょう。 VS Codeでif_basic.pyという新しいファイルを作成し、以下のコードを入力してください。

# 年齢を変数に設定
age = 20

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

このプログラムを実行してみましょう。 VS Codeのターミナルで以下のコマンドを実行してください。

python if_basic.py

実行結果は以下のようになります。

あなたは成人です

プログラムの動作を詳しく見てみましょう。 まず変数ageに値20を代入しています。 次に、if文でage >= 18という条件を確認しています。

>=は「以上」を意味する比較演算子です。 つまり「ageが18以上かどうか」を判定しています。 ageが20なので、この条件は満たされます(Trueになります)。

条件が満たされた場合、インデントされた部分の処理が実行されます。 そのため「あなたは成人です」というメッセージが表示されました。

条件が満たされない場合を確認してみよう

今度は、条件が満たされない場合の動作を確認してみましょう。 先ほどのプログラムを少し修正してみます。

# 年齢を変数に設定
age = 15  # 値を15に変更

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

print("プログラムが終了しました")

このプログラムを実行すると、以下のような結果になります。

プログラムが終了しました

今度は「あなたは成人です」が表示されませんでした。 これは、ageが15なので、age >= 18という条件が満たされなかった(Falseだった)からです。

条件が満たされない場合、if文の中の処理はスキップされます。 そのため、if文の後にあるprint("プログラムが終了しました")だけが実行されました。

このように、if文を使うことで「条件が満たされる場合のみ実行する処理」を作ることができます。

比較演算子の種類と使い方

条件式を作るためには、比較演算子を理解する必要があります。 比較演算子は、2つの値を比較して、その結果を真偽値(TrueまたはFalse)で返します。

Pythonで使える主な比較演算子を見てみましょう。

演算子意味結果
==等しい5 == 5True
!=等しくない5 != 3True
>より大きい5 > 3True
<より小さい3 < 5True
>=以上5 >= 5True
<=以下3 <= 5True

これらの演算子を使って、様々な条件を作ることができます。 実際にいくつかの例を試してみましょう。

等しいかどうかの判定

VS Codeでcomparison.pyという新しいファイルを作成し、以下のコードを入力してみてください。

# パスワードの確認
password = "hello123"

if password == "hello123":
    print("パスワードが正しいです")

print("認証処理が完了しました")

このプログラムを実行すると、以下のような結果になります。

パスワードが正しいです
認証処理が完了しました

ここでは==演算子を使って、パスワードが正しいかどうかを判定しています。 文字列同士の比較も数値と同じように行うことができます。

異なる値かどうかの判定

次に、異なる値かどうかを判定してみましょう。 先ほどのプログラムに以下のコードを追記してください。

# パスワードの確認
password = "hello123"

if password == "hello123":
    print("パスワードが正しいです")

print("認証処理が完了しました")

# 追加部分
username = "guest"

if username != "admin":
    print("一般ユーザーとしてログインします")

実行結果は以下のようになります。

パスワードが正しいです
認証処理が完了しました
一般ユーザーとしてログインします

!=演算子は「等しくない」という意味です。 usernameが"admin"ではないので、条件が満たされて処理が実行されました。

数値の大小比較を使ったプログラム

今度は、数値の大小比較を使ったより実用的なプログラムを作成してみましょう。 VS Codeでscore_check.pyという新しいファイルを作成し、以下のコードを入力してください。

# テストの点数
score = 85

if score >= 80:
    print("優秀な成績です!")

if score >= 60:
    print("合格です")

if score < 60:
    print("もう少し頑張りましょう")

print(f"あなたの点数は{score}点でした")

このプログラムを実行すると、以下のような結果になります。

優秀な成績です!
合格です
あなたの点数は85点でした

このプログラムでは、複数のif文を使って点数に応じたメッセージを表示しています。 scoreが85なので、最初の2つの条件(80以上、60以上)が満たされています。 3つ目の条件(60未満)は満たされないので、その処理はスキップされます。

ユーザー入力と組み合わせた実用的なプログラム

これまでは変数に直接値を設定していましたが、今度はユーザーからの入力と組み合わせてみましょう。 VS Codeでage_check.pyという新しいファイルを作成し、以下のコードを入力してください。

# ユーザーから年齢を入力してもらう
age_input = input("あなたの年齢を入力してください: ")
age = int(age_input)

if age >= 20:
    print("成人の方ですね")

if age >= 65:
    print("シニア割引が適用されます")

if age < 20:
    print("未成年の方ですね")

print("入力ありがとうございました")

このプログラムを実行してみましょう。 実行すると、年齢の入力を求められます。

python age_check.py

例えば「25」と入力した場合の実行結果は以下のようになります。

あなたの年齢を入力してください: 25
成人の方ですね
入力ありがとうございました

このプログラムでは、input()関数でユーザーから文字列を受け取り、int()関数で数値に変換しています。 その後、年齢に応じて異なるメッセージを表示しています。

年齢が25の場合、最初の条件(20以上)は満たされますが、2つ目の条件(65以上)と3つ目の条件(20未満)は満たされません。 そのため、該当する処理のみが実行されます。

条件式をより詳しく理解しよう

条件式は、最終的に真偽値(TrueまたはFalse)を返す式のことです。 比較演算子を使った式の結果を直接確認してみましょう。

VS Codeでboolean_check.pyという新しいファイルを作成し、以下のコードを入力してください。

# 様々な条件式の結果を確認
age = 18

print("age >= 18の結果:", age >= 18)
print("age == 18の結果:", age == 18)
print("age < 18の結果:", age < 18)
print("age != 20の結果:", age != 20)

実行結果は以下のようになります。

age >= 18の結果: True
age == 18の結果: True
age < 18の結果: False
age != 20の結果: True

このように、比較演算子を使った式は必ずTrueまたはFalseという値を返します。 if文は、この真偽値を確認して処理を分岐させています。

条件式がTrueの場合はif文の中の処理が実行され、Falseの場合はスキップされます。 この仕組みを理解しておくと、より複雑な条件分岐も理解しやすくなります。

まとめ

本章では、Pythonのif文について学習しました。 以下のポイントを理解できたことと思います。

if文を使うことで、プログラムに判断力を持たせることができます。 条件が満たされる場合のみ特定の処理を実行することで、より柔軟なプログラムを作成できるようになりました。

比較演算子(==、!=、>、<、>=、<=)を使って様々な条件を作ることができます。 これらの演算子は数値だけでなく文字列の比較にも使用できます。

if文の構文では、条件式の後にコロン(:)を付け、実行したい処理をインデントで字下げすることが重要です。 このインデントによって、どの処理がif文に含まれるかが決まります。

条件分岐は、実用的なプログラムを作成するための基本的な要素です。 ユーザーの入力に応じて異なる処理を実行したり、データの値によって表示内容を変えたりすることで、より動的で便利なプログラムを開発できるようになります。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Starterプランでより詳しく学習

この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
制御構造