有没有一种方法可以检查多个语句是否使用单个“elif”是真的?
问题描述:
针对this challenge,我写了下面的代码:有没有一种方法可以检查多个语句是否使用单个“elif”是真的?
for i in range(1, 101):
if i % 3 == 0:
print("Fizz")
if i % 5 == 0:
print("Buzz")
if i % 15 == 0:
print("Fizzbuzz")
elif i % 3 !=0:
print(i)
elif i % 5 !=0:
print(i)
elif i % 15 !=0:
print(i)
它的工作原理,但我不知道这是最有效的方法。例如,我不确定的一件事是如何使用1 elif
来包含多个可分性测试。任何帮助感谢!
答
这是任何数量的最有效的方法:
def fizzbuzz(n):
output = ''
if n % 3 == 0:
''.join(output, 'Fizz')
if n % 5 == 0:
''.join(output, 'Buzz')
return output if output else str(n)
print "\n".join(fizzbuzz(n) for n in xrange(1, 21))
+0
你的第一个如果可能只是'n%15'。对于相同的结果,单个比较而不是两个。您也可以通过保留一个返回字符串并加入'Fizz'3和'Buzz'5来消除比较。如果它们都是真的,则返回'FizzBuzz'。无需检查15. –
+0
请求编辑答案,如果您可以正确格式化我很乐意将您添加为协作者。 :) – Jeremy
我不认为这样做的工作。这将打印“FizzBuzz”两次,倍数为15. – CollinD
您写的内容实际上不起作用。 – user2357112