LoginSignup
0
0

More than 1 year has passed since last update.

0から9までの偶奇判定 - 初級から上級まで -

Last updated at Posted at 2023-05-18

はじめに

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)]))
0
0
0

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
0
0