読者です 読者をやめる 読者になる 読者になる

らりょすの日記

備忘録と感じたことと。ブログじゃないです,日記です。

【備忘録】Python3 FizzBuzz ワンライナー

備忘録

基本的な考え方

for i in range(1, 100):
  if i%15==0:
    print("FizzBuzz")
  elif i%3==0:
    print("Fizz")
  elif i%5==0:
    print("Buzz")
  else:
    print(i)

短くする

1. 三項演算子みたいなのを使う

Python三項演算子,ちょっと不思議な形。

真の場合の値 if 条件 else 偽の場合の値

ちなみに,CとかPHPだったら

条件? 真の場合の値:偽の場合の値;

慣れが必要?

これで書き直したFizzBuzz

for i in range(1,100):
  print("\n".join(["FizzBuzz" if i%15==0 else "Fizz" if i%3==0 else "Buzz" if i%5==0 else (str)(i)]))

2. リスト内包表記

ここまできたらリスト内包表記するしか無いので,

print("\n".join(["FizzBuzz" if i%15==0 else "Fizz" if i%3==0 else "Buzz" if i%5==0 else (str)(i) for i in range(1,100)]))

思ったこと

三項演算子が不思議な感じだな
リスト内包表記ってこうやって使うんだな
いつか別の書き方で書いてみたいな 終わり

参考

Pythonでfizzbuzz — かないノート
Python黒魔術でfizzbuzzを書こう - cocu's note