僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
fizzと
buzzを
同じリストに併合する手法の改善。
冗漫なことはあまり変わらないだろうけど。
#!/usr/bin/env python from __future__ import print_function from sys import argv try: last = int(argv[1]) + 1 except: print("No last number.") exit(2) list = ['buzz', 'fizz', False, False, False] def fizz(num): y = num % 3 + 1 if list[y] == 'fizz': return True else: return False def buzz(num): z = num % 5 if list[z] == 'buzz': return True else: return False for x in range(1, last): if fizz(x): print("fizz", end='') if buzz(x): print("buzz", end='') if not (fizz(x) or buzz(x)): print(x, end='') print('')
fizzbuzzの処理を追加すれば、 print('')を省いて、 if の連続代りに if .. elif .. else できるのだけど。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。