Delving into Delusion

Playing around with FizzBuzz

 January 18, 2021      Stardate: 74514.7     Tagged as: Python

I was bored and reading a Python article on Medium where it challenged the reader to write a python one-liner to solve the FizzBuzz question. This is a long-time famous programming interview question that everyone most likely knows, so I won’t explain it. Like I said, I was bored so I wrote it out.

Here is my long-form solution using loops:

def loop_fizzbuzz(num=100):
    for i in range(1, num+1):
        if (i%3==0 and i%5==0): print("FizzBuzz")
        elif i%3==0: print("Fizz")
        elif i%5==0: print("Buzz")
        else: print(i)
    return True

loop_fizzbuzz()    

I did the one-liner using list comprehension, but then thought it would be interesting to create a generator and spit it out in a list comprehension. Since this is such a trivial example, I don’t see any memory benefit, or any benefit it all except being silly.

def listcomp_fizzbuzz(num=100):
    # create a generator
    return ( 'FizzBuzz' if (i%3==0 and i%5==0) else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else i for i in range(1, num+1) )

[ print(i) for i in listcomp_fizzbuzz() ]

Completely by coincidence - honestly - I just saw on Twitter that Joel Grus @joelgrus (a data science nerd that I stalk follow) just published a humorous and interesting book titled “Ten Essays on Fizz Buzz”. It’s a collection of stories with unusual Fizz Buzz solutions, for example, he imagines creating and training a neural network to predict the first 100 answers. Totally outrageous, but the interview story he imagines along with the solution is pretty funny! Anyways - support your fellow nerds!

Software Versions

This is an automated list of software versions used during the writing of this article.

SoftwareVersion
Python 3.7.4