PythonでFizzBuzz問題を解いてみる
Python を勉強しようと思い、まずはFizzBuzz問題をやってみようと思います。
使用環境:Python 3.6.3
FizzBuzz問題とは
Jeff Atwood さんが提唱したこんな問題。
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
コードにしてみる
for バージョン
Python
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print('FizzBuzz')
elif i % 3 == 0:
print('Fizz')
elif i % 5 == 0:
print('Buzz')
else:
print(i)
while バージョン
Python
i = 1
while i <= 100:
if i % 3 == 0 and i % 5 == 0:
print('FizzBuzz')
elif i % 3 == 0:
print('Fizz')
elif i % 5 == 0:
print('Buzz')
else:
print(i)
i += 1
三項演算子で書いてみる
for i in range(1,101):
print('Fizz' if (i % 3 == 0 and i % 5 == 0) else 'Fizz' if (i % 3 == 0) else 'Buzz' if (i % 5 == 0) else i)
Python
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print('FizzBuzz')
elif i % 3 == 0:
print('Fizz')
elif i % 5 == 0:
print('Buzz')
else:
print(i)
Python
i = 1
while i <= 100:
if i % 3 == 0 and i % 5 == 0:
print('FizzBuzz')
elif i % 3 == 0:
print('Fizz')
elif i % 5 == 0:
print('Buzz')
else:
print(i)
i += 1
for i in range(1,101):
print('Fizz' if (i % 3 == 0 and i % 5 == 0) else 'Fizz' if (i % 3 == 0) else 'Buzz' if (i % 5 == 0) else i)
ポイントは、print文の中に演算式を入れ込んでいるところ(さすがに見にくいので、各条件式に()つけてます)。
でも、入れ子の三項演算子にしないといけないから見にくい。。。
参考
三項演算子の構文
(条件がTrueのときの値) if (条件式) else (条件がFalseのときの値)
やってみてわかったこと
- FizzBuzz問題は、条件判定や繰り返しの構文がわかってよいですね。
- 個人的には、Python の三項演算子の構文に慣れない。
Author And Source
この問題について(PythonでFizzBuzz問題を解いてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/tacoyaky/items/eeae93cc9a09a81e43b1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .