今回はプログラムらしく、条件分岐処理をやってみましょう。
Pythonの条件分岐処理は、if文を使います。
なお、他の言語ではSwitch文というものありますが、Pythonでは条件分岐処理はif文しかありません。
if文の使い方
if文は条件式の真偽を判定して、処理を振り分けます。
Pythonでは真か偽のいずれかを表す型として、bool(ブール)型があります。
bool型では真をTrue、偽をFalseで表します。
if文の基本的な書き方は、以下のようになります。
処理は複数書くことができ、それをまとめてブロックと呼びます。
また、ブロックはインデント(字下げ)が必要です。
インデントは一般的に連続した空白4個を使います。
if 条件式:
処理1
処理2
:
if文を書く時の注意点
if文を書く時の注意点は、以下の二つです。
注意ポイント
- 条件式の後ろに:(コロン)を付ける。
- ブロックにはインデントを付ける。
if文を使ったプログラム
以下のプログラムは、if文の条件式にTrueを指定していますので、必ず真となり「これは真です」と表示します。
1 2 |
if True: print("これは真です") |
1 2 |
> python if1.py これは真です |
if~else文の使い方
条件式が偽の場合にも処理を実行したい場合は、if~else文を使います。
if~else文は条件式が真であれば処理1を行い、偽であれば処理2を行います。
なお、elseの後ろにも:(コロン)が必要です。
if 条件式:
処理1
else:
処理2
if~else文を使ったプログラム
以下のプログラムは、入力した値が1の場合は「これは1です」と表示して、1以外の場合は「これは1以外です」と表示します。
input()はPythonの組み込み関数で、コマンドプロンプトから値の入力を受け付けます。
条件式の「==」は、右辺と左辺が同じであれば真になります。
なお、入力された値は文字列として扱われますので、3行目の較する値を"(ダブルクォーテーション)で囲む必要があります。
1 2 3 4 5 6 |
value = input("数値を入力してください:") if value == "1": print("これは1です") else: print("これは1以外です") |
1 2 3 4 5 6 7 |
> python if2.py 数値を入力してください:1 これは1です > python if2.py 数値を入力してください:2 これは1以外です |
if~elif~else文の使い方
分岐する条件が複数ある場合は、if~elif~else文を使います。
if~elif~else文は、条件式1が真であれば処理1を行い、条件式2が真であれば処理2を行います。
条件式1、条件式2のどちらにも当てはまらなければ、処理3を行います。
気を付けなければならないのは、条件式1、条件式2が両方とも真の場合は、処理1のみ実行されて処理2は実行されません。
なお、elifはいくつでも追加することができます。
if 条件式1:
処理1
elif 条件式2:
処理2
else:
処理3
if~elif~else文を使ったプログラム
以下のプログラムは、1を入力すると「これは1です」と表示し、2を入力すると「これは2です」と表示します。
1と2以外の数値を入力すると「これは1、2以外です」と表示します。
5行目の条件式で使っている「<=」は、左辺が右辺以下であれば真になります。
数値以外の例えば「a」などを入力するとエラーとなります。
ここで重要なのは、1を入力すると条件式1(value == 1)と条件式2(value <= 2)に当てはまりますが、実行されるのは条件式1のみというです。
なお、入力された値を組み込み関数のint()で数値型にしていますので、値を比較する際に"(ダブルクォーテーション)は不要です。
1 2 3 4 5 6 7 8 |
value = int(input("数値を入力してください:")) if value == 1: print("これは1です") elif value <= 2: print("これは2です") else: print("これは1、2以外です") |
1 2 3 4 5 6 7 8 9 10 11 |
> python if3.py 数値を入力してください:1 これは1です > python if3.py 数値を入力してください:2 これは2です > python if3.py 数値を入力してください:3 これは1、2以外です |
参考として、Python公式サイト「Pythonの基礎の基礎」へのリンクを貼っておきます。