Python 3.x 如何在Python3中使用输入值编写fizzbuzz函数?
我正在编写一个函数fizzbuzz,我想做的是输入值并以fizz、buzz或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
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)