为什么条件中有两个数字的fizzbuzz在一数字条件后不工作?

1 投票
1 回答
49 浏览
提问于 2025-04-14 18:35

我正在用Python做一个大家都知道的“FizzBuzz”问题,但我不明白为什么Python没有检查“组合”的条件。

这是我的代码:

i = 0

while i + 1 < 100:
    i = i + 1
      
    if i % 3 == 0:
        print(str(i) + " fizz")
    elif i % 5 == 0:
        print(str(i) + " buzz")
    elif (i % 3 == 0 and i % 5 == 0):
        print(str(i) + " fizzbuzz")
    
    else:
        print(str(i))

我不明白为什么在可以同时被3和5整除的情况下,它没有输出“fizzbuzz”。

我想看到“fizz”或者“buzz”或者“fizzbuzz”,但我只看到了“fizz”或者“buzz”。这是为什么呢?

1 个回答

3

我不知道为什么这样有效,但对我来说确实有效。

我只是把检查这两个“东西”的条件放在了最上面。

这里是代码:

i = 0

while i + 1 < 100:
    i = i + 1
    if (i % 3 == 0 and i % 5 == 0):
        print(str(i) + " fizzbuzz")
    
    elif i % 3 == 0:
        print(str(i) + " fizz")
    elif i % 5 == 0:
        print(str(i) + " buzz")
    
    else:
        print(str(i))

希望这对你也有效,遗憾的是,我无法解释为什么会这样。

撰写回答