如何使用输入值在 Python 3 中编写 fizzbuzz 函数?

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

我正在编写一个 fizzbuzz 函数,我想做的是输入值,return 它作为 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))

确保以正确的顺序检查您的条件。

Fizzbuzz 数也是 Fizz(可被 3 整除)和 Buzz(可被 5 整除),只是为了清楚起见。 在您编写的代码中,如果您询问函数 15 是否是 Buzz,因为这是第一次检查,您将得到肯定的结果。

这里要测试的条件不是一个数是否能被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))

问题出在您的 if 条件语句的顺序上。

考虑一下,如果 a 可以被 15 整除,那么它也可以被 3 和 5 整除,因此您的代码将只输入第一个条件而不是您想要的。

将条件按 15、5、3 等的降序排列,您应该看到您想要的。

def fizzBuzz(n):
    for n in range(1,n+1):
        if n % 3 == 0 and n % 5 == 0:
            print('FizzBuzz')
        elif n % 3 == 0:
            print('Fizz')
        elif n % 5 == 0:
            print('Buzz')
        else:
            print(n)

if __name__ == '__main__':
    n = int(input().strip())
    fizzBuzz(n)