13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonのコードを短く簡潔に書くテクニックAdvent Calendar 2017

Day 16

三項演算子を「a or b」という形式に書き直す

Last updated at Posted at 2017-12-15

この記事は Pythonのコードを短く簡潔に書くテクニック Advent Calendar 2017 の16日目です。

はじめに

条件によって値を変えたいときは三項演算子1が便利です。
しかし、特定の条件のときは三項演算子をa or bという書き方に置き換えることで簡潔に書き直すことができます。

if文で書いた場合

if a:
    return a
else:
    return b

三項演算子で書いた場合

return a if a else b

a or bで書いた場合

return a or b

三項演算子でa if a else bのようにifの条件と結果で返す値が同じ場合にはa or bという書き方に置き換えることができます。

a or bと書いた場合、aが真になる場合はaを、そうでなければbになります。

真になる条件

先ほど「真になる」という表現を使いましたが、これはa == Trueということではなく、bool(a) == Trueという意味です。

bool(a) == Trueになる条件は型によって違います。
組み込み型で代表的なものを挙げると以下のようになっています。

真となる条件
int,floatなどの数値型 a != 0
str,list,dictなど長さを持つ型 len(a) != 0

詳細は[object.__bool__()]を参照してください。

参考

[object.__bool__()]:https://docs.python.jp/3/reference/datamodel.html#object.__bool__)

  1. Pythonドキュメントでは 条件式 (しばしば "三項演算子" と呼ばれます) と書かれており、「条件式」が正式名称のようですが、ここでは他言語でも一般的に使われている「三項演算子」という表現を使います。

13
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?