Как мне написать функцию fizzbuzz в Python 3 с входным значением? - PullRequest
0 голосов
/ 25 февраля 2020

Я пишу функцию fizzbuzz, и я хочу ввести значение и вернуть его как fizz, buzz или fizzbuzz. Тем не менее, есть проблема с моим кодом. Всякий раз, когда я запускаю это, я просто получаю только первое условие, и оно не продолжается. Вот код ниже для вас:

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))

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Проблема заключается в упорядочении ваших условных операторов if.

Учтите, что если a делится на 15, то он также делится на 3 и 5, и поэтому ваш код будет просто вводить первое условное и не тот, который вам нужен.

Расположите условия в порядке убывания 15, 5, 3 и т. д. c. и вы должны увидеть, что вы хотите.

0 голосов
/ 25 февраля 2020

Убедитесь, что ваши условия проверены в правильном порядке.

Число Fizzbuzz также является Fizz (делится на 3) и Buzz (делится на 5), чтобы было ясно. В коде, который вы написали, если вы спросите функцию, если 15 - Buzz, поскольку это 1-я проверка, вы получите положительный результат.

Условие, которое вы хотите проверить здесь, не является делением числа на делимое. на 15, но если число делится на 3 и 5. Одновременно.

Учитывая это объяснение, вам нужно написать условия немного по-другому:

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))
...