Search code examples
python-3.xfunctionif-statementfizzbuzz

How do I write the fizzbuzz function in Python 3 with an input value?


I am writing a function fizzbuzz and what I want to do is input value and return it as fizz, buzz or fizzbuzz. However, there is a problem with my code. Whenever I run this, I just only get the first condition and it does not continue. Here is the code below for you:

a=int(input('Enter a number: '))

def fizzbuzz(a):

    if a % 3 == 0:

        return ('Fizz')

    elif a % 5 == 0:

        return ( 'Buzz' )

    elif a % 15 == 0:

        return ('Fizzbuzz')

    else:

        return a

print(fizzbuzz(a))

Solution

  • Be sure that your conditions are checked in the right order.

    A Fizzbuzz number is also a Fizz (divisible by 3) and a Buzz (divisible by 5), just to be clear. In the code you wrote if you ask the function if 15 is a Buzz, since it is the 1st check, you will get a positive result.

    The condition you want to test here is not if a number is divisible by 15 but if a number is divisible by 3 and 5 at the same time.

    Given this explanation you need to write conditions a bit differently:

    a=int(input('Enter a number: '))
    
    def fizzbuzz(a):
        if a % 3 == 0 and a % 5 == 0:
            return('Fizzbuzz')
        elif a % 3 == 0:
            return('Fizz')
        elif a % 5 == 0:
            return('Buzz')
        else:
            return a
    
    print(fizzbuzz(a))