# -*- coding: cp932 -*- a = 1 n = input("整数を入力してください")+1 if n < 1: n = 0 print "1以上の正の整数を入力して下さい" if n > 300: n = 0 print "300未満の数を入力してください" while a < n: if a % 15 == 0: print "FizzBuzz" elif a % 3 == 0: print "Fizz" elif a % 5 == 0: print "Buzz" else: print a a = a + 1
これと似たような、ナベアツ問題がありますが、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 xrange(1, 101))