我正在尝试创建一个程序,该程序打印出一个从0开始到用户输入的数字(以变量“ number”表示)的数字列表。我需要使用“ while”循环来解决此问题(我已经有一个功能强大的“ for”循环版本的分配)。程序应在列表中用“ Fizz”除以3,用“ Buzz”除以5并用“ FizzBuzz”除以5的任何内容标记,同时还包括那些规范之外的未标记数字。
每次我运行该程序时,它都会忽略条件,仅打印单词“ FizzBuzz”,但是很多时候由输入的数字表示。 (我通常使用15,因为它至少每个条件都有一个示例,所以这意味着我连续获得15个“ FizzBuzz”。)
要弄清楚为什么这样做,我在第一个条件下使用了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!")
答案 0 :(得分:2)
您打算检查i
的除数,它会增加每个循环,而不是number
的不变性。
您还打算在else子句中使用print(i)
。