ユーニックス総合研究所

  • home
  • archives
  • python-else-if

Pythonの else if はこうやって書きます【elifを使った条件分岐】

  • 作成日: 2023-05-30
  • 更新日: 2023-12-24
  • カテゴリ: Python

Pythonの else if はこうやって書きます

Pythonではelse ifを書くときはelifを使って書きます。
以下のようにです。

if 0:  
    print('if')  
elif 1:  
    print('elif')  
else:  
    print('else')  

上記のコードを実行すると

elif  

と出力されます。

参考:4. その他の制御フローツール — Python 3.11.3 ドキュメント

関連記事
Djangoでオブジェクトを一括作成・更新【bulk_create, bulk_update】
DjangoのModel.objects.filter()の使い方【QuerySet】
Djangoのmodelのcreate()の使い方【Python】
Django入門: ルートの設定 ~ 簡単な一行掲示板アプリを作る その4【Windows10】
NumPyのappend()の使い方: 配列の末尾に要素を追加
Numpyのarangeの使い方: 指定範囲の数列を生成する
Python3でYoutube Data APIを使ってキーワード検索する
PythonからC言語(my.puts)を呼び出して実行する

elifの構造と仕組み

Pythonのelifはif文の一部で使われるものです。
使われたり使われなかったりします。
つまり使うかどうかは書き手の自由です。

elifは以下のような構造になっています。

elif 条件式:  
    真の時の実行内容  

elifの条件式が真のときにインデントされた実行内容が実行されます。
条件式が偽の時は次のelifelseに処理が移ります。

elifは単独で使うことはできません。
かならずif文と一緒に使います。

if 0:  
    print('if')  
elif 1:  
    print('elif 1')  
elif 2:  
    print('elif 2')  
else:  
    print('else')  

if文ではif部とelse部は1つだけです。
しかしelif部は無数に繋げることができます。

処理はまずif部の条件式の判定に始まり、次にelif部の条件式の判定に移ります。
またそれが偽なら次のelif部の条件式に移り、そういった感じで繰り返していきます。
最後にelse部があればそのelseの実行内容が実行されます。

elifはどんな時に使うか?

条件が複数の条件になる場合はelifを繋げて複数の条件に対応できるようにします。
たとえば色があって色がredgreenblueかどうか判定したいとします。

そういう時は

color = 'green'  

if color == 'red':  
    print('RED')  
elif color == 'green':  
    print('GREEN')  
elif color == 'blue':  
    print('BLUE')  
else:  
    print('unknown')  

こういう感じでコードを書いて、それぞれの色の場合についてのコードを書きます。
else部では対応していない色の場合にどうするかを書きます。

elifはいくつ繋げられるのか?

Python3.10で実験してみました。
25,000個のelifを繋げてみたところ以下のエラーが出ました。

RecursionError: maximum recursion depth exceeded during compilation  

RecursionErrorということは再帰エラーですね。
おそらくelifの実装が再帰的に行われているのかもしれません。
5,000個まで減らしたらちゃんと実行されました。

ということで繋げられるelifは5,000個ぐらい、ということになります。

なぜPythonではelifなのか?

なぜPythonではelse ifではなくelifが採用されているのか。
これを知るには言語設計者に聞かないことにはわかりません。
想像ですがタイプ数を減らすためにelifを採用したのではないでしょうか。

🦝 < 適当言ってるな

🦝 < せやな

おわりに

今回はPythonの else if の書き方を解説しました。
Pythonではelifを使いましょう。