Цикл while игнорирует условные выражения (если, иначе) и просто печатает первый предложенный вариант печати - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь создать программу, которая распечатывает список чисел, начиная с 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 Ответ

0 голосов
/ 07 октября 2018

Вы хотели проверить делимость i, которая увеличивает каждый цикл, а не number, который не изменяется.

Вы также имели в виду print(i) в предложении else.

...