【Python入門】if文で複数の文を実行する

 Pythonにおける条件分岐は、プログラムの流れを状況に応じて変えるための基本的な手法です。特に、if文を使って条件がTrueの場合に複数の処理(文)を実行する方法は、実践的なアプリケーションで頻繁に利用されます。
 ここでは、if 文の基本構文、複数の文をif 文内で実行する方法、そしてその際に重要なインデントやコロンの役割について、具体的なコード例や表を用いて詳しく解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.if文の基本構文と複数文の実行

1.1. 条件式とブロックの定義

 if 文は、条件式が True か False かを評価し、True の場合のみそのブロック内の文を実行します。基本的な構文は以下の通りです。

if 条件式:
    文1
    文2
    # ... 複数の文をインデントして記述

解説

  • 条件式: 評価結果がTrueまたはFalseとなる式を記述します。
  • コロン (:) は条件式の終了を示し、その後に続くインデントされた文がif文のブロック(実行される文群)となります。
  • インデントはPythonにおけるブロックを定義する重要な要素で、PEP8では標準的に空白4個分が推奨されています。

1.2. 複数の文を実行する例

 if文のブロック内に複数の文を書くことで、条件がTrueの場合に複数の処理を一度に実行できます。ここでは、ユーザが秘密のコードを入力し、そのコードが正しければ賞品に関する複数のメッセージを表示する例を示します。

サンプルプログラム

# ユーザから秘密のコードを入力してもらう
code = input("Enter secret code: ")

# 条件分岐:入力されたコードが正しいかどうかを判定
if code == "9999":
    print("Congratulations!")
    print("You won a free coffee!")

実行結果

Enter secret code:  9999
Congratulations!
You won a free coffee!

解説

  • このプログラムでは、input() 関数を使ってキーボードから文字列を取得し、その値を変数 code に代入します。
  • if code == "9999": の部分では、入力された文字列が "9999" と等しいかどうかを比較しています。
  • 条件がTrueの場合、if文のブロック内にある2つの print 文が実行され、最初に "Congratulations!" が、次に "You won a free coffee!" が出力されます。
  • 条件がFalseの場合は、if文内の文は実行されず、何も表示されません。

2.if文の構文の詳細と注意点

2.1. コロンとインデントの役割

 if 文では、条件式の後に必ずコロン(:)を記述し、その次の行からはインデントして実行する文を書く必要があります。インデントが正しくないと、Pythonは構文エラーを返します。

例:

if code == "9999": print("Congratulations!"); print("You won a free coffee!")

解説

  • 上記のように、1行で記述する場合はコロンの後に文を続け、セミコロン(;)で区切ることが可能ですが、可読性が低下するため、標準的には改行してインデントを使います。
  • 複数行に分けた場合、すべての実行文は同じインデント幅(通常4個の空白)で記述する必要があります。

2.2. 条件がFalseの場合の挙動

 if 文の条件式がFalseの場合、if 文のブロック内の文は一切実行されません。これは、条件分岐の基本動作であり、正しい条件を記述することが重要です。

サンプルプログラム

code = input("Enter secret code: ")
if code == "9999":
    print("Congratulations!")
    print("You won a free coffee!")

解説

  • ユーザが "9999" を入力しなかった場合、if文内の print 文は実行されず、プログラムは何も出力しません。
  • この動作を利用して、正しい入力があった場合にのみ特定の処理を行うことができます。

下記の表は、if 文の基本構文とその重要な要素をまとめたものです。

要素記法例説明
条件式if code == "9999":条件がTrueかFalseかを評価する式
コロン (:)if code == "9999":条件式の終了と、if文ブロックの開始を示す
インデントprint("Congratulations!")if文の内部に含まれる文は同じインデント(通常4個の空白)で記述
複数文の記述方法改行して各文をインデントする複数の文をif文内で実行可能(1行にまとめる場合はセミコロンも利用可能)

まとめ

 if 文で複数の文を実行する方法は、条件が True のときに一連の処理をまとめて実行するために不可欠です。

  • 基本構文: 条件式の後にコロンを記述し、インデントされたブロック内に実行する文をまとめます。
  • 複数文の実行: インデントを正しく用いることで、if文のブロック内に複数の文を記述でき、条件がTrueの場合にそれらすべてが実行されます。
  • 注意点: 1行で記述する場合やセミコロンを利用する場合でも、可読性と一貫性を保つために、インデントやコロンの役割を正しく理解することが重要です。

 これらの知識を活かして、条件に応じた柔軟なプログラムの制御を実現し、ユーザの入力やプログラムの状態に応じた動的な処理を行えるようになりましょう。