Pythonのelseで何もしない方法【if~else文】
- 作成日: 2022-04-15
- 更新日: 2024-01-06
- カテゴリ: Python
Pythonのelseで何もしない方法
Pythonのif文ではelseを使うことができます。
if文の条件が偽だったときに実行されるのがelseです。
このelseで何もしない処理を書きたい場合はどうしたらいいのでしょうか?
結論から言うと「pass文」を使います。
このpass文を使うと「何もしない」という処理を書くことができます。
関連記事
頭が悪い人のPythonのevalの使い方
頭がいい人のPythonのexitの使い方
状態遷移による文字列パースのテクニック【Python】
頭が悪い人のPythonのevalの使い方
頭がいい人のPythonのexitの使い方
状態遷移による文字列パースのテクニック【Python】
elseで何もしない
pass文を使ってif文のelseで何もしない処理を書くと↓のようになります。
if 0:
print('hello')
else:
pass
↑のコードの場合、if 0:
という条件式は結果が偽(False)になります。
そのためprint('hello')
という処理は実行されません。
ですので代わりにelse:
の部分が実行されます。
else:
の処理ではpass
文が実行されますが、pass
は何もしない文です。
そのためプログラム的にはなにもしません。
elseとpass文は省略できる
「何もしないelse」というのは、何もしないわけですから省略することができます。
例えば先ほどのif文は
if 0:
print('hello')
else:
pass
というコードでしたが、このelse
の部分は省略して
if 0:
print('hello')
と書くこともできます。
しかし省略は可能ですが、意図的に省略しないケースもあります。
それは「何もしない」ということを明示したいときです。
elseを省略すると「elseを書き忘れたのかな?」と見た人は思うことがあります。
しかし明示的にelseとpass文を書いておけば「ああ、elseはなにもしないんだな」とわかります。
このように明示的にelseとpass文を書くと、「何もしない」ということをコード上で強調することができます。
チーム開発や長期開発などではこのような工夫をしておくと、コードがわかりやすくなります。
3項演算子ではpass文は使えない
Pythonのif文は3項演算子のように書くこともできます。
しかしこの書き方ではelseにpass文は書けません。
たとえば↓のようなコードは実行できません。
n = 1 if 1 else pass
print(n)
elseを省略したテクニック
if文のelseというのは味わい深いものがあります。
たとえば↓のコードをご覧ください。
def one_or_two(n):
if n == 0:
return 1
else:
return 2
↑の関数は引数n
が0だったら1
を、0以外だったら2
を返す関数です。
条件分岐ではif-else文を使っています。
しかしこれは↓のように書くこともできます。
def one_or_two(n):
if n == 0:
return 1
return 2
↑のようにelseを省略し、return文だけ関数のお尻にちょこんと書きます。
これも動作的には同じ振る舞いをします。
これらの2つの書き方は、それぞれ使う人によって思想があります。
elseを省略しない書き方は、省略しないほうがif文の「それ以外」という文脈を明確にできる。
ということで好む人もいます。
いっぽうelseを省略する書き方は、コードが短くなるのでこっちのほうが好きという人もいます。
コードの動作的にはどちらも同じ動作をしますので、好きなほうを使うということになると思います。
おわりに
今回はPythonのelseで何もしない方法を解説しました。
elseで何もしないというのはコード的には「何もしない」ことを強調する意味があります。
良い感じで使っていきたいところです。
🦝 < elseで何もしない
🐭 < 何もしないという行動