Я новичок в программировании на Python, и я делаю некоторые эксперименты с ним. Надеюсь, мой вопрос не слишком глуп: я пишу небольшую программу, которая добавляет входные данные в список и печатает его, когда входные данные равны 4, используя цикл while. проблема в том, что он никогда не останавливается, чтобы добавить входные данные и распечатать список Мой код:

S=input()
L=[]
while S!=4:
    L.append(S)
    if S==4:
        break
print(L)
3
Franz 31 Авг 2017 в 10:37

4 ответа

Лучший ответ

Вы создали бесконечный цикл в вашем коде. Вы не меняете значение S после входа в цикл. Вы должны добавить еще один вход из цикла, например:

S=input()
L=[]
while S!=4:
   L.append(S)
   S = input()
print(L)

Кроме того, условие if в вашем коде бесполезно, поскольку оно уже установлено в объявлении цикла while

-1
itaisls9 31 Авг 2017 в 07:43

Функция input () возвращает строковые объекты, поэтому они никогда не могут быть равны 4, который является объектом int.

Чтобы выйти из проблемы, замените 4 на '4'.

Это будет рассматривать '4' как строку, поскольку равенство будет выполняться при вводе 4 в качестве ввода

1
Tushar Aggarwal 31 Авг 2017 в 07:41

Есть еще одна большая проблема с вашим кодом, вы больше не обновляете S, более правильный ответ будет:

S=input()
L=[]
while S!=4:
    L.append(S)
    if S=="4":
        break
    S = input()
print(L)

Если вы не хотите, чтобы все блокировало ожидание нового ввода, то вы можете рассмотреть возможность добавления потоков, но если это просто для того, чтобы пользователь мог добавить значения в массив и прекратить делать это, добавив 4, это может помочь

1
davy gillebert 31 Авг 2017 в 07:45

Проблема в том, что вы один раз читаете, например, вход S = 1, после этого S всегда 1, поэтому S никогда не будет 4, и ваш цикл никогда не прекратится, вы должны добавить свой ввод в { { Х3 } } :

list = []
number = -1
while number != 4:
    number = int(input())
    list.append(number)
print(list)

И если вы проверите, что S! = 4 в while, вы не получите t need if statement in while`.

1
Vladyslav 31 Авг 2017 в 07:40