Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの条件分岐をマスターする:if、else、elifの使い方徹底解説

このチュートリアルでは、Pythonにおける ifelseelif 文の使い方を詳しく解説します。

プログラミングでは、条件の結果に応じて処理を分岐させたい場面が頻繁にあります。Pythonでは、if 文を使って条件を評価し、その結果によって実行するコードを制御します。

Pythonのif文とは

Pythonにおける if 文の基本構文は以下のとおりです。

if condition:
    statement

ここで特に注意すべきポイントは、コロン(:)とインデント(字下げ)です。Pythonではインデントによってコードブロックを定義するため、インデントが正しくないとエラーになります。

比較演算子の一覧

条件の評価には、論理演算子(比較演算子)を使用します。主な演算子は以下のとおりです。

  • 等しい:a == b
  • 等しくない:a != b
  • より小さい:a < b
  • 以下:a <= b
  • より大きい:a > b
  • 以上:a >= b

if 文に続くコードは、条件が true(真)と評価された場合にのみ実行されます。

if文のサンプルコード

以下は、パスワードの長さをチェックする if 文の例です。

password = 'Hello'

if len(password) < 6:
    print('password too weak - should be at least 6 characters')

出力結果:

password too weak - should be at least 6 characters

このコードでは、パスワードの文字数を評価しています。条件は「文字数が6文字未満であってはならない」というもので、不等号 < で表現されています。

文字列「Hello」は5文字なので6文字未満となり、条件はtrueと評価されます。そのため、print文が出力されました。

Pythonのif…else文

条件の評価結果がfalse(偽)だった場合にも何らかの処理を行いたいときは、else 文を追加します。

if...else 文の構文は次のようになります。

if condition:
    statement_1
else:
    statement_2

先ほどのパスワードの例を続けて使うと、「パスワードが要件を満たしていることをユーザーに伝えたい」場合は、その処理を else ブロックに記述します。

例:

password = 'Mission'

if len(password) < 6:
    print('password too weak - should be at least 6 characters')
else:
    print('your password was accepted')

出力結果:

your password was accepted

この場合、「Mission」は7文字あるため、if の条件はfalseと評価されます。else ブロックが存在するため、2つ目の print() 文が実行されるという仕組みです。

elifを使った複数の条件分岐

プログラムで3つ以上のケースを扱いたい場合は、複数の ifelse の組み合わせが必要になります。このとき使用するのが elif キーワードです。「elif」は「else if」の略で、追加の条件を順番に評価できます。

例として、3つの整数の入力から三角形の種類を判定するプログラムを見てみましょう。

  • 不等辺三角形:3つの辺の長さがすべて異なる
  • 二等辺三角形:同じ長さの辺が2つある
  • 正三角形:すべての辺の長さが等しい
a = 5
b = 5
c = 5

if a != b and b != c and a != c:
    print('This is a scalene triangle')
elif a == b and b == c:
    print('This is an equilateral triangle')
else:
    print('This is an isosceles triangle')

出力結果:

This is an equilateral triangle

この例は、3つ以上のケースを扱う方法を示しています。これまで同様、コロンの付け忘れやインデントのずれには注意しましょう。

elif の数に上限はありません。ただし、else 文は1つだけしか置けず、どの条件にも当てはまらなかった場合の「受け皿(キャッチオール)」として機能します。すべての if 条件がfalseだった場合に、else ブロックが実行されます。

三項演算子(if…elseの省略記法)

if...else ブロックは、三項演算子(条件式)を使えば1行で簡潔に書くこともできます。

構文は次のとおりです。

condition_if_true if condition else condition_if_false

例:

a = 100
b = 200
print('A') if a > b else print('B')

出力結果:

B

この例では a > b がfalseのため、「B」が出力されます。単純な条件分岐なら、この省略記法を使うことでコードが読みやすくなります。

まとめ

  • if...else 文と elif 文は、プログラムの流れを制御するために使われる。
  • if文はプログラミングにおいて意思決定(条件分岐)を行うために使用される。
  • if文は指定された条件に基づいて評価される。
  • elseブロックはif文に付加でき、条件がfalseの場合に実行される。
  • elseブロックはif文なしで単独では存在できない。
  • 複数の条件を扱う場合は、elif文をif文にいくつでも付加できる。
  1. JavaScriptの条件分岐とは?if文・else文・else if文の使い方を解説

    JavaScriptには、条件に応じて処理を切り替えるための「条件分岐(条件文)」が用意されています。条件式が真(true)か偽(false)かを評価することで、実行するコードを制御できます。代表的な条件文は次の3種類です。 if文 − 指定した条件が満たされた場合にのみ、ifブロック内のコードを実行します。最も基本的な条件分岐です。 if…else文 − 条件が真の場合と偽の場合で、それぞれ異なる処理を実行したいときに使います。2つのケースを切り替えるのに適しています。 if…else if…else文 − 3つ以上の条件を扱いたい場合に使用します。条件を上から順に評価し、最初に一致したブ

  2. Pythonで行列の各行を反転し、ビットを反転させる方法

    本記事では、2値行列(0と1のみで構成される行列)を扱うアルゴリズム問題をPythonで解く方法を解説します。具体的には、行列の各行を左右に反転(リバース)した後、各ビットを反転(0を1に、1を0に変換)する処理を実装します。 問題の概要 2値行列 mat が与えられたとします。まず行列内の各行を選択して行を逆順に並べ替え、その後、行内の各要素について0と1を入れ替えます。 例えば、次のような入力が与えられた場合を考えてみましょう。 110010001 この場合、出力は以下のようになります。 100101011 解法のアプローチ この問題は、以下の手順で解決できます。 行インデックス