Цикл 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) в остальном.

Другие вопросы по тегам