n = int(input("整数を入力してください: "))
if n < 1:
    n = 0
    print("1以上の正の整数を入力して下さい")
if n > 300:
    n = 0
    print("300以下の数を入力してください")
for a in range(1, n+1):
    if a % 15 == 0:
        print("FizzBuzz")
    elif a % 3 == 0:
        print("Fizz")
    elif a % 5 == 0:
        print("Buzz")
    else:
        print(a)

これと似たような、ナベアツ問題がありますが、1行で書いた方が居るので紹介しておきます。

["aho" if x % 3 == 0 or "3" in str(x) else x for x in range(1, 51)]

こういう書き方もあります。

[(((x%3==0 or '3' in str(x)) and 'aho') or x) for x in range(1,51)]

ワンライナーでFizzBuzz。

print('\n'.join(str(i)*(i%3!=0 and i%5!=0) + 'Fizz'*(i%3==0) + 'Buzz'*(i%5==0) for i in range(1, 101)))

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS