Возникли проблемы с кодом Python, который должен рассчитывать каждый раз, когда появляется 100 - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь создать программу, которая будет считать каждый раз, когда кто-то вводит число «100», и программа завершится, когда будет введено «0», но код также продолжает считать «0».

getnumber = int(input())
result1 = 1
while True:
    getnumber = int(input())
    if getnumber == 100:
        result1 = result1+1

    if getnumber == 0:
        print(result1)

Что здесь пошло не так?

1 Ответ

1 голос
/ 30 июня 2019

while True будет указывать продолжать повторять тело этого цикла. Таким образом, вы должны добавить условие для этого. Пока getnumber не 0, вы хотите, чтобы он продолжал повторяться, поэтому while getnumber должно работать.

Другая ошибка заключается в том, что вы не учитываете первое число, которое запрашиваете, и начинаете result1 с 1 (вместо 0).

Мы можем упростить вышесказанное до:

getnumber = True
result1 = 0
while getnumber:
    result1 += getnumber == 100
    getnumber = int(input())
print(result1)

Поскольку bool является подклассом int, а False и True равны 0 и 1 соответственно, мы можем таким образом добавить getnumber == 100 к числу.

Мы используем getnumber в качестве условия, чтобы проверить, пойдем ли мы на другой цикл. Пока getnumber не равно 0, мы выполняем еще один цикл. Мы инициализируем getnumber в True, так как это не 100 (и, следовательно, оно не будет учитываться), и, кроме того, оно создаст цикл.

...