Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在Python3中使用输入值编写fizzbuzz函数?_Python 3.x_Function_If Statement_Fizzbuzz - Fatal编程技术网

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

Python 3.x 如何在Python3中使用输入值编写fizzbuzz函数?,python-3.x,function,if-statement,fizzbuzz,Python 3.x,Function,If Statement,Fizzbuzz,我正在编写一个函数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' ) e

我正在编写一个函数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))

确保按照正确的顺序检查您的状况

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

这里要测试的条件不是一个数字是否可以被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等降序排列,您应该可以看到所需的内容。

Wikipedia页面上有一个FizzBuzz的python示例:我之所以写15,是因为我不想使用and运算符。我想做的是打印fizzbuzz,如果这个数字可以被3和5整除,因为15也可以被它们整除,我使用15作为条件。我错了吗?嘿,我从15改成了3和5,代码正常。我不需要范围从0到50太,但仍然,谢谢你的帮助!
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)