def fizz():
while True:
yield ""
yield ""
yield "Fizz"
def buzz():
while True:
yield ""
yield ""
yield ""
yield ""
yield "Buzz"
if __name__ == "__main__":
limit = 100
for i, Fizz, Buzz in zip(range(limit), fizz(), buzz()):
print((Fizz + Buzz) or i + 1)
実行結果
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
...
Fizz
97
98
Fizz
Buzz
Appendix
kazuhoさんのFizzBuzz実装にインスピレーションを受けて。
Pythonならジェネレーターで似たようなことができるの良い仕様だと思う。