Python3で条件文を書く方法

提供:Dev Guides
移動先:案内検索

序章

条件文はすべてのプログラミング言語の一部です。 条件付きステートメントを使用すると、そのときのプログラムの状態に応じて、実行される場合と実行されない場合があるコードを作成できます。

プログラムの各ステートメントを完全に実行し、各行を順番に実行して上から下に移動する場合、特定の条件を評価するようにプログラムに要求することはありません。 条件文を使用することにより、プログラムは特定の条件が満たされているかどうかを判断し、次に何をすべきかを指示することができます。

条件文を使用するいくつかの例を確認しましょう。

  • 学生が65% onを超えるテストを受けた場合は、成績が合格したことを報告してください。 そうでない場合は、彼女の成績が失敗したことを報告します
  • 彼の口座にお金がある場合は、利息を計算します。 そうでない場合は、違約金を請求します
  • オレンジを10個以上購入した場合は、5%の割引を計算します。 購入数が少ない場合は、購入しないでください

条件を評価し、それらの条件が満たされているかどうかに基づいて実行するコードを割り当てることにより、条件付きコードを記述しています。

このチュートリアルでは、Pythonプログラミング言語で条件ステートメントを作成する方法について説明します。

前提条件

Python 3をインストールし、コンピューターまたはサーバーにプログラミング環境をセットアップする必要があります。 プログラミング環境をセットアップしていない場合は、ローカルプログラミング環境またはサーバー上のプログラミング環境のインストールおよびセットアップガイドを参照して、オペレーティングに適したものにすることができます。システム(Ubuntu、CentOS、Debianなど)

Ifステートメント

ifステートメントから始めます。これは、ステートメントがtrueかfalseかを評価し、ステートメントがtrueの場合にのみコードを実行します。

情報:このチュートリアルのサンプルコードに従うには、python3コマンドを実行して、ローカルシステムでPythonインタラクティブシェルを開きます。 次に、>>>プロンプトの後に例を追加して、例をコピー、貼り付け、または編集できます。


プレーンテキストエディタで、ファイルを開き、次のコードを記述します。

grade = 70
 
if grade >= 65:
    print("Passing grade")

このコードでは、変数gradeがあり、それに70の整数値を与えています。 次に、ifステートメントを使用して、可変グレードが65以上(>=)であるかどうかを評価します。 この条件を満たしている場合は、文字列Passing gradeを印刷するようにプログラムに指示しています。

プログラムをgrade.pyとして保存し、ローカルプログラミング環境でターミナルウィンドウからpython grade.pyコマンドを使用して実行します。

この場合、グレード70 は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-5の値(0未満)で初期化しました。 天びんは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.

ここでは、balance変数値を正の数に変更して、elseステートメントが出力されるようにしました。 最初のifステートメントを出力するために、値を負の数に書き換えることができます。

ifステートメントをelseステートメントと組み合わせることにより、if条件が会った。

それ以外の場合のステートメント

これまで、条件付きステートメントのブールオプションを示してきました。各ifステートメントはtrueまたはfalseのいずれかに評価されます。 多くの場合、2つ以上の可能な結果を評価するプログラムが必要になります。 このために、Pythonでelifとして記述されたelseifステートメントを使用します。 elifまたは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つの出力があります。

  • 変数balance0と等しい場合、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ステートメントは順番に評価されるため、ステートメントをかなり基本的なものに保つことができます。 このプログラムは、次の手順を完了しています。

  1. グレードが90より大きい場合、プログラムはA gradeを出力し、グレードが90未満の場合、プログラムは次のステートメントに進みます…
  2. グレードが80以上の場合、プログラムはB gradeを出力し、グレードが79以下の場合、プログラムは次のステートメントに進みます…
  3. グレードが70以上の場合、プログラムはC gradeを出力し、グレードが69以下の場合、プログラムは次のステートメントに進みます…
  4. グレードが65以上の場合、プログラムはD gradeを出力し、グレードが64以下の場合、プログラムは次のステートメントに進みます…
  5. 上記のすべての条件が満たされていないため、プログラムはFailing gradeを出力します。

ネストされたIfステートメント

ifelif、および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ステートメント、プログラムは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に設定されている場合、プログラムは次のように実行します。

  1. グレードが65以上かどうかを確認します(true)
  2. Passing grade of:を印刷します
  3. グレードが90以上かどうかを確認します(true)
  4. グレードが96より大きいかどうかを確認します(false)
  5. グレードが93より大きく96以下(true)かどうかを確認します
  6. 印刷A
  7. これらのネストされた条件ステートメントを残して、残りのコードを続行します

したがって、グレード96のプログラムの出力は次のようになります。

OutputPassing grade of:
A

ネストされたifステートメントは、コードにいくつかの特定のレベルの条件を追加する機会を提供できます。

結論

ifステートメントのような条件ステートメントを使用することにより、プログラムの実行内容をより細かく制御できます。 条件ステートメントは、特定の条件が満たされているかどうかを評価するようにプログラムに指示します。 条件が満たされている場合は特定のコードを実行しますが、満たされていない場合はプログラムは他のコードに移動し続けます。

条件ステートメントの練習を続けるには、さまざまな演算子を使用し、演算子をandまたはorと組み合わせ、ループと一緒に条件ステートメントを使用してみてください。 また、簡単な電卓プログラムの作成方法のチュートリアルを実行して、条件ステートメントについて理解を深めることもできます。