【闇Python】二重三重のif文をたった1行でまとめるワンライナー記法のすすめ

2019-03-27 07:40:59 309

1行コードの例

普通のif文を書くとこうなる

偶数かどうか

#python3

num = 6
if num % 2 == 0:
print('偶数')
else:
print('偶数ではない')

これを1行に書くと、if文は後ろに回る

偶数かどうか1行Ver

print('偶数') if num % 2 ==0 else print('偶数ではない')

ポイントは、ちゃんとelseまで書いてあげること。

elseの処理を書かないと、エラーが吐き出されてしまう。

複数のif文がネスとしているときはどうなるのか。

たとえば、2の倍数を判別した後で、3の倍数を判別したいとき、こうなる。
(普通に6の倍数でやれよというツッコミはなし)

2の倍数かつ3の倍数

num = 6
if num % 2 == 0:
if num % 3 == 0:
print('6の倍数')
else:
print('偶数だが、3の倍数ではない')
else:
print('偶数ではない')

これを、1行でまとめると、まずは中入れの部分から順番に記載することになる。

2の倍数かつ3の倍数の1行Ver

print('6の倍数') if num % 3 ==0 else print('偶数だが、3の倍数ではない') if num % 2 == 0 else print('偶数ではない')

関連記事