Nobody ever seems to go for the general solution:
words = ( (3, 'Fizz'), (5, 'Buzz') )
def fizzbuzz(num): for value, word in words: if i % value == 0: yield word
for i in range(1, 101): print ''.join(fizzbuzz(i)) or i
words = ( (3, 'Fizz'), (5, 'Buzz') )
def fizzbuzz(num): for value, word in words: if i % value == 0: yield word
for i in range(1, 101): print ''.join(fizzbuzz(i)) or i
words = ((3, 'Fizz'), (5, 'Buzz'))
def fizzbuzz(num):
for value, word in words:
if num % value == 0:
yield word
for i in range(1, 101):
print ''.join(fizzbuzz(i)) or i def fizzbuzz(num):
return (word for value, word in words if num % value == 0)
And even dropping the fizzbuzz function altogether reads quite nicely IMHO, though it starts to look a bit golfed: words = ((3, 'Fizz'), (5, 'Buzz'))
for i in range(1, 101):
print ''.join(s for n, s in words if i % n == 0) or i