Цикл while игнорирует условные выражения (если, иначе) и просто печатает первый предложенный вариант печати
Я пытаюсь создать программу, которая распечатывает список чисел, начиная с 0 и заканчивая числом, которое вводит пользователь (представленное переменной "число"). Мне необходимо использовать циклы while для решения этой проблемы (у меня уже есть функционал цикла for для назначения). Программа должна пометить что-либо в этом списке, делимое на 3 со словом "Fizz", делимое на 5 со словом "Buzz", и все, что можно разделить на оба с помощью "FizzBuzz", а также включать номера без меток за пределами этих спецификаций.
Каждый раз, когда я запускаю эту программу, она игнорирует условия и просто печатает слово "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!")
1 ответ
Вы хотели проверить делимость i
, который увеличивает каждый цикл, а не number
который не меняется.
Вы также хотели print(i)
в остальном.