前書き
条件ステートメントは、すべてのプログラミング言語の一部です。 条件付きステートメントを使用すると、その時点のプログラムの条件に応じて、実行される場合と実行されない場合があるコードを作成できます。
プログラムの各ステートメントを完全に実行し、各行を順番に実行しながら上から下に移動する場合、特定の条件を評価するようにプログラムに要求することはありません。 条件付きステートメントを使用することにより、プログラムは特定の条件が満たされているかどうかを判断し、次に何をすべきかを通知できます。
条件ステートメントを使用するいくつかの例を見てみましょう。
-
学生がテストで65%以上を受け取った場合、成績が合格したことを報告します。そうでない場合、彼女の成績が失敗することを報告します
-
アカウントにお金がある場合は、利息を計算します。そうでない場合は、罰金を請求します
-
10個以上のオレンジを購入する場合、5%の割引を計算します。彼らがより少なく買うなら、しないでください
条件を評価し、それらの条件が満たされているかどうかに基づいて実行するコードを割り当てることにより、条件付きコードを作成しています。
このチュートリアルでは、Pythonプログラミング言語で条件ステートメントを書く方法を説明します。
ifステートメント
if
ステートメントから始めます。これは、ステートメントがtrueかfalseかを評価し、ステートメントがtrueの場合にのみコードを実行します。
プレーンテキストエディターでファイルを開き、次のコードを記述します。
grade = 70
if grade >= 65:
print("Passing grade")
このコードでは、変数grade
があり、それに整数値70
を与えています。 次に、if
ステートメントを使用して、変数のグレードが(>=
)から65
以上であるかどうかを評価します。 この条件を満たす場合は、stringPassing grade
を出力するようにプログラムに指示しています。
プログラムをgrade.py
として保存し、コマンドpython grade.py
を使用してlocal programming environment from a terminal windowで実行します。
この場合、70doesのグレードは65以上の条件を満たすため、プログラムを実行すると次の出力が表示されます。
OutputPassing grade
grade
変数の値を60
に変更して、このプログラムの結果を変更してみましょう。
grade.py
grade = 60
if grade >= 65:
print("Passing grade")
thisコードを保存して実行すると、条件がnotに満たされ、プログラムに別のステートメントを実行するように指示しなかったため、出力は返されません。
もう1つの例を挙げると、銀行口座の残高が0未満かどうかを計算してみましょう。 account.py
というファイルを作成し、次のプログラムを作成してみましょう。
account.py
balance = -5
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
python account.py
を使用してプログラムを実行すると、次の出力が返されます。
OutputBalance is below 0, add funds now or you will be charged a penalty.
プログラムでは、変数balance
を0未満の-5
の値で初期化しました。 天びんはif
ステートメント(balance < 0
)の条件を満たしているため、コードを保存して実行すると、文字列出力を受け取ります。 繰り返しますが、残高を0または正の数に変更すると、出力を受け取りません。
その他の声明
if
ステートメントがfalseと評価された場合でも、プログラムに何かを実行させたい可能性があります。 成績の例では、成績が合格か不合格かを出力する必要があります。
これを行うには、次のように構成された上記のグレード条件にelse
ステートメントを追加します。
grade.py
grade = 60
if grade >= 65:
print("Passing grade")
else:
print("Failing grade")
上記のグレード変数の値は60
であるため、if
ステートメントはfalseと評価され、プログラムはPassing grade
を出力しません。 次のelse
ステートメントは、プログラムにとにかく何かをするように指示します。
プログラムを保存して実行すると、次の出力が表示されます。
OutputFailing grade
次に、プログラムを書き直して、成績に65
以上の値を与えると、代わりに出力Passing grade
を受け取ります。
銀行口座の例にelse
ステートメントを追加するには、次のようにコードを書き直します。
account.py
balance = 522
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
else:
print("Your balance is 0 or above.")
OutputYour balance is 0 or above.
ここでは、else
ステートメントが出力されるように、balance
変数値を正の数に変更しました。 最初のif
ステートメントを出力するために、値を負の数に書き換えることができます。
if
ステートメントをelse
ステートメントと組み合わせることにより、if
条件が満たされているかどうかに関係なく、特定のコードを実行するようにコンピューターに指示する2つの部分からなる条件ステートメントを作成します。
その他のifステートメント
これまで、条件ステートメントのブールオプションを示してきました。各if
ステートメントはtrueまたはfalseのいずれかに評価されます。 多くの場合、2つ以上の可能な結果を評価するプログラムが必要になります。 このために、Pythonでelif
として記述されたelse ifステートメントを使用します。 elif
またはelse ifステートメントはif
ステートメントのように見え、別の条件を評価します。
銀行口座プログラムでは、3つの異なる状況に対して3つの個別の出力が必要になる場合があります。
-
残高が0未満です
-
残高は0に等しい
-
残高が0を超えています
elif
ステートメントは、次のようにif
ステートメントとelse
ステートメントの間に配置されます。
account.py
. . .
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
elif balance == 0:
print("Balance is equal to 0, add funds soon.")
else:
print("Your balance is 0 or above.")
現在、プログラムを実行すると発生する可能性のある3つの出力があります。
-
変数
balance
が0
と等しい場合、elif
ステートメント(Balance is equal to 0, add funds soon.
)から出力を受け取ります。 -
変数
balance
が正の数に設定されている場合、else
ステートメント(Your balance is 0 or above.
)から出力を受け取ります。 -
変数
balance
が負の数に設定されている場合、出力はif
ステートメント(Balance is below 0, add funds now or you will be charged a penalty
)からの文字列になります。
しかし、3つ以上の可能性を持ちたい場合はどうでしょうか? これを行うには、コードに複数のelif
ステートメントを記述します。
grade.py
プログラムで、数値の成績の範囲に対応するいくつかの文字の成績があるようにコードを書き直してみましょう。
-
90以上はAグレードに相当
-
80-89はBグレードと同等です
-
70-79はCグレードと同等です
-
65-69はDグレードと同等です
-
64以下はFグレードと同等です
このコードを実行するには、1つのif
ステートメント、3つのelif
ステートメント、およびすべての失敗したケースを処理するelse
ステートメントが必要です。
上記の例のコードを書き直して、各文字の評点を印刷する文字列を作成しましょう。 else
ステートメントを同じに保つことができます。
grade.py
. . .
if grade >= 90:
print("A grade")
elif grade >=80:
print("B grade")
elif grade >=70:
print("C grade")
elif grade >= 65:
print("D grade")
else:
print("Failing grade")
elif
ステートメントは順番に評価されるため、ステートメントをかなり基本的なものに保つことができます。 このプログラムは次の手順を完了しています。
-
グレードが90より大きい場合、プログラムは
A grade
を出力し、グレードが90より小さい場合、プログラムは次のステートメントに進みます… -
グレードが80以上の場合、プログラムは
B grade
を出力し、グレードが79以下の場合、プログラムは次のステートメントに進みます… -
グレードが70以上の場合、プログラムは
C grade
を出力し、グレードが69以下の場合、プログラムは次のステートメントに進みます… -
グレードが65以上の場合、プログラムは
D grade
を出力し、グレードが64以下の場合、プログラムは次のステートメントに進みます… -
上記のすべての条件が満たされていないため、プログラムは
Failing grade
を出力します。
ネストされたIfステートメント
if
、elif
、およびelse
ステートメントに慣れたら、ネストされた条件ステートメントに進むことができます。 最初の条件がtrueとして実行された場合に、2番目の条件をチェックする状況では、ネストされたif
ステートメントを使用できます。 このために、if-elseステートメントを別のif-elseステートメント内に含めることができます。 ネストされたif
ステートメントの構文を見てみましょう。
if statement1: #outer if statement
print("true")
if nested_statement: #nested if statement
print("yes")
else: #nested else statement
print("no")
else: #outer else statement
print("false")
このコードからいくつかの可能な出力が得られます。
-
statement1
がtrueと評価された場合、プログラムはnested_statement
もtrueと評価されるかどうかを評価します。 両方の場合に当てはまる場合、出力は次のようになります。
Outputtrue yes
-
ただし、
statement1
がtrueと評価され、nested_statement
がfalseと評価された場合、出力は次のようになります。
Outputtrue no
-
また、
statement1
がfalseと評価された場合、ネストされたif-elseステートメントは実行されないため、else
ステートメントは単独で実行され、出力は次のようになります。
Outputfalse
コード全体に複数のif
ステートメントをネストすることもできます。
if statement1: #outer if
print("hello world")
if nested_statement1: #first nested if
print("yes")
elif nested_statement2: #first nested elif
print("maybe")
else: #first nested else
print("no")
elif statement2: #outer elif
print("hello galaxy")
if nested_statement3: #second nested if
print("yes")
elif nested_statement4: #second nested elif
print("maybe")
else: #second nested else
print("no")
else: #outer else
statement("hello universe")
上記のコードでは、elif
ステートメントに加えて、各if
ステートメント内にネストされたif
ステートメントがあります。 これにより、各条件内でより多くのオプションが可能になります。
grade.py
プログラムでネストされたif
ステートメントの例を見てみましょう。 等級が最初に合格しているかどうか(65%以上)を確認してから、数値の等級がどの文字の等級に相当するかを評価できます。 ただし、成績が合格していない場合は、レターの成績を確認する必要はなく、代わりに成績が不合格であるとプログラムに報告させることができます。 ネストされたif
ステートメントを使用して変更されたコードは次のようになります。
grade.py
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
print("A")
elif grade >=80:
print("B")
elif grade >=70:
print("C")
elif grade >= 65:
print("D")
else:
print("Failing grade")
変数grade
を整数値92
に設定してコードを実行すると、最初の条件が満たされ、プログラムはPassing grade of:
を出力します。 次に、グレードが90以上であるかどうかを確認し、この条件も満たされているため、A
を出力します。
grade
変数を60
に設定してコードを実行すると、最初の条件が満たされないため、プログラムはネストされたif
ステートメントをスキップし、else
に移動します。 )sステートメント。プログラムはFailing grade
を出力します。
もちろん、これにさらにオプションを追加し、ネストされたifステートメントの2番目のレイヤーを使用できます。 おそらく、A +、A、A-のグレードを個別に評価したいと思うでしょう。 そのためには、まずグレードが合格しているかどうかをチェックし、次にグレードが90以上であるかどうかを確認し、次にA +のグレードが96を超えているかどうかを確認します。
grade.py
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
if grade > 96:
print("A+")
elif grade > 93 and grade <= 96:
print("A")
elif grade >= 90:
print("A-")
. . .
上記のコードでは、grade
変数が96
に設定されている場合、プログラムは次のように実行します。
-
グレードが65以上かどうかを確認します(true)
-
Passing grade of:
を出力します -
グレードが90以上かどうかを確認します(true)
-
グレードが96より大きいかどうかを確認します(false)
-
グレードが93より大きく、96以下かどうかを確認します(true)
-
A
を出力 -
これらのネストされた条件ステートメントを残し、残りのコードを続行します
したがって、等級96のプログラムの出力は次のようになります。
OutputPassing grade of:
A
ネストされたif
ステートメントは、コードにいくつかの特定のレベルの条件を追加する機会を提供できます。
結論
if
ステートメントのような条件ステートメントを使用することにより、プログラムの実行内容をより細かく制御できます。 条件ステートメントは、特定の条件が満たされているかどうかを評価するようにプログラムに指示します。 条件が満たされると、特定のコードが実行されますが、条件が満たされない場合、プログラムは他のコードに移動し続けます。
条件ステートメントの練習を続けるには、さまざまなoperatorsを使用し、演算子をand
またはor
と組み合わせ、loopsと一緒に条件ステートメントを使用してみてください。 How To Make a Simple Calculator Programに関するチュートリアルを実行して、条件ステートメントについて理解を深めることもできます。