【Pythonの基礎】FizzBuzz問題をPythonでコーディングする

こんにちは、@Yoshimiです。

プログラマーの能力をテストするのに使われていることで有名なFizzBuzz問題です。今、Pythonを勉強しているのでPythonで実装していきます。

Fizz Buzz
プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は「Fizz」(Bizz Buzzの場合は「Bizz」)、5で割り切れる場合は「Buzz」、両者で割り切れる場合(すなわち15で割り切れる場合)は「Fizz Buzz」(Bizz Buzzの場合は「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。
引用:https://ja.wikipedia.org/wiki/Fizz_Buzz

Fizz Buzz問題

1からn回までを繰り返し

  • 3の倍数はFizz
  • 5の倍数はBuzz
  • 15の倍数はFizz Buzz
  • それ以外は、数字

を出力する

for i in range(1, 101):
  if i%15 == 0: # 15の倍数
    print('Fizz Buzz', end=' ')
  elif i%5 == 0: # 5の倍数
    print('Buzz', end=' ')
  elif i%3 == 0: # 3の倍数
    print('Fizz', end=' ')
  else:
    print(i, end=' ')

OUT
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz Buzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 Fizz Buzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 Fizz Buzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 Fizz Buzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 Fizz Buzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 Fizz Buzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz

15の倍数は初めに記述することがポイントになります。15という数字は3の倍数でもあり、5の倍数でもあります。なので、先に3、5の処理を記述してしまうと、そこで処理が行われてしまいます。

# 他の書き方
for i in range(1, 101):
  message = ''
  if i%3 ==0:
    message += 'Fizz'
  if i%5 ==0:
    message += 'Buzz'
  print(message or i, end=' ')

最後に

Aの場合はA+なる。Bの場合はB+になる。などの処理を自分て正確に動いたときはうれしいものです。もちろん他の記述方法があると思うので、より高速に動く記述方法を見つけていきたいと思います。


なりたい自分になれる
スキルアップならUdemy

私も利用し、高収入エンジニアになったのよ。未経験から機械学習、データサイエンティスト、アプリ開発エンジニアを目指せるコンテンツが多数あります。優秀な講師が多数!割引を利用すれば1,200円〜から動画購入可能です。!

ABOUTこの記事をかいた人

大学卒業して、キラキラしていたのでIT業界にはいりましたが、中身はブラックでした!!だから、投資技術を磨いて早くリタイヤしたいです。株価、Python、機械学習をもうもう勉強中です。経済的自由を手に入れて農家やりたい!