Pythonでelseなしの三項演算子を実現する方法|1行if文と短絡評価の使い方
if文を1行にまとめる基本の書き方
Pythonでは、通常次のように複数行で書くif文を、
if <condition>:
<some-code>
単一行のif構文を使えば、次のように1行にまとめることができます。
if <condition>: <some-code>
この書き方は、条件が満たされたときに実行したい処理が1つだけの場合に特に便利です。インデントのブロックが不要になるため、コードがすっきりします。
and演算子の短絡評価を利用する方法
もうひとつの方法として、and演算子の短絡評価(ショートサーキット)の仕組みを利用する書き方があります。
<condition> and <some-code>
この書き方がどのように動作するかを順に見てみましょう。
- 条件が偽(False)の場合: 短絡評価が働き、
andの右側にある式は一切評価されません。そのため<some-code>は実行されません。 - 条件が真(True)の場合: 右側の式も評価され、結果として
<some-code>が実行されます。
つまり、「条件が真のときだけ処理を実行する」というif文と同じ振る舞いを、論理演算子だけで実現できるのです。
使う際の注意点
and演算子を使った方法は簡潔に書ける反面、意図が伝わりにくくなることがあります。実務のコードでは、可読性を優先して通常のif文や、値を返す場合は三項演算子(条件式)であるx if condition else yを使うのが一般的です。
また、短絡評価を利用した書き方は、副作用のある処理というより、式として値を扱いたい場面に向いています。チーム開発ではコードの読みやすさを考慮し、状況に応じて適切な書き方を選びましょう。
-
Pythonで「+」演算子を使わずに文字列を連結する方法
str.join()メソッドを使う「+」演算子を使わずに文字列を連結したい場合は、文字列クラスが標準で提供している str.join() メソッドを使用します。このメソッドは、連結したい文字列のリスト(イテラブル)を引数として受け取り、それらを1つの文字列にまとめて返します。重要なのは、join を呼び出す側の文字列が「区切り文字」として機能するという点です。つまり、渡したリスト内の各文字列の間に、その区切り文字が挿入されます。使用例>>> .join([Hello, World]) Hello World >>> .join([Hello, World,
-
Rubyの三項演算子(?:)の使い方を徹底解説!基本構文から注意点まで
Rubyの三項演算子とは? 三項演算子は「3つの部分」で構成される演算子で、「三項(ternary)」という名前もここから来ています。具体的には、条件式と2つの結果候補から成り立ちます。 つまり、三項演算子を使えば、通常複数行になるif/else文をたった1行のコンパクトなコードにまとめられるのです。 例えば、次のようなコードが… 1 :eat_apple else :buy_apple end このように書けます: 1 ? :eat_apple : :buy_apple これが三項演算子の力です。 では、具体的にどのように動作するのか、正しい構文はどうなっているのかを見ていき