while 循环忽略条件(if,else)并且只打印第一个建议的打印选项

While loop ignores conditionals (if, else) and just prints first suggested print option

我正在尝试创建一个程序,打印出从 0 开始到用户输入的数字(由变量 "number" 表示)的数字列表。我需要使用 "while" 循环来解决这个问题(我已经有了作业的功能性 "for" 循环版本)。该程序应标记该列表中可被 3 整除的任何内容 "Fizz," 可被 5 整除的单词 "Buzz," 以及任何可被两者整除的内容 "FizzBuzz" 同时还包括那些规范之外的未标记数字.

每次我 运行 这个程序,它都会忽略条件,只打印 "FizzBuzz" 这个词,但是很多次都是由输入的数字表示的。 (我通常使用 15,因为每个条件至少有一个示例,所以这意味着我连续得到 15 "FizzBuzz"s)。

为了找出它这样做的原因,我在第一个条件下使用 print(i) 而不是程序的其余部分,它给了我 15 个数字 0 的计数,所以有理由相信这个程序完全忽略了我给它的范围,只是根据输入的用户号输出 i 的副本。

如有任何帮助,我们将不胜感激!

number = int(input("Enter a Number"))
i = 0
while(i < number + 1):
    if number % 3 == 0 and number % 5 == 0:
        print("Fizzbuzz")
    elif number % 5 == 0:
        print("Buzz")
    elif number % 3 == 0:
        print("Fizz")
    else:
        print(number)
    i += 1
print ("Done!")

您打算检查 i 的整除性,它会在每个循环中递增,而不是 number 的整除性,后者不会改变。

您还打算在 else 子句中 print(i)