While循环会忽略条件语句(如果是,否则),仅打印第一个建议的打印选项

时间:2018-10-07 02:51:32

标签: python if-statement conditional-statements repeat fizzbuzz

我正在尝试创建一个程序,该程序打印出一个从0开始到用户输入的数字(以变量“ number”表示)的数字列表。我需要使用“ while”循环来解决此问题(我已经有一个功能强大的“ for”循环版本的分配)。程序应在列表中用“ Fizz”除以3,用“ Buzz”除以5并用“ FizzBu​​zz”除以5的任何内容标记,同时还包括那些规范之外的未标记数字。

每次我运行该程序时,它都会忽略条件,仅打印单词“ FizzBu​​zz”,但是很多时候由输入的数字表示。 (我通常使用15,因为它至少每个条件都有一个示例,所以这意味着我连续获得15个“ FizzBu​​zz”。)

要弄清楚为什么这样做,我在第一个条件下使用了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!")

1 个答案:

答案 0 :(得分:2)

您打算检查i的除数,它会增加每个循环,而不是number的不变性。

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