有没有办法使用单个“elif”检查多个语句是否为真?

时间:2017-06-02 16:37:30

标签: python performance if-statement python-3.5

在回复this challenge时,我写了以下代码:

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包含几个可分性测试。任何帮助赞赏!

2 个答案:

答案 0 :(得分:1)

这是任何数字的最有效方式:

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

答案 1 :(得分:0)

而不是:

elif i % 3 !=0:
    print(i)
elif i % 5 !=0:
    print(i)
elif i % 15 !=0:
    print(i)

你可以做到

elif i % 3 !=0 or i % 5 != 0 or i % 15 != 0:
    print(i)