はじめに
0から10までの数字の偶数奇数を判定するコードを普通のforとifを用いた表現(5行)、Pythonの内包表記を用いた表現(3行)、joinメソッドを用いた表現(1行)で示します。実行結果は、全て以下のようになりますが、コードは5行、3行、1行と短くなっていきます。Python初心者で、実行環境がない方はGoogle ColaboratoryでPythonを体験してみてください。
0 is even
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
初級編
まず初心者はこのように書くのではないかと思います。最初に思いつくシンプルなコードですね。
for i in range(10):
if i%2==0:
print(f'{i} is even')
else:
print(f'{i} is odd')
中級編
Pythonを使っていると内包表記に出会うことがあると思います。その内包表記を使ってこのコードをより短くします。ちなみに可読性のために3行にしていますがこのコードは簡単に2行にできます。
even_or_odd = [str(i)+' is even' if i%2==0 else str(i)+' is odd' for i in range(10) ]
for ans in even_or_odd:
print(ans)
上級編
joinメソッドまで使ってこのプログラムを限界まで圧縮しましょう。ここまでくると、可読性最悪です。Pythonはその気になればいくらでもコードを圧縮できるということですね。
print('\n'.join([str(i)+' is even' if i%2==0 else str(i)+' is odd' for i in range(10)]))
おまけ
Chat GPTにより短くしてもらったコードが以下です。さすがですね、iとisをそれぞれ1回ずつ使うことでコードをより圧縮しています。
print('\n'.join([f'{i} is {"even" if i%2==0 else "odd"}' for i in range(10)]))