Почему мой цикл while падает в бесконечность?

Я хочу ввести серию чисел и закончить с помощью «stop», цикл while - проверить, не является ли x не равным «stop», он продолжает добавлять номер входа и выводить сумму #read вход x = input () #add вверх по циклу T = 0 x_int = int ( x ), в то время как x ! = 'stop' : для i в диапазоне ( 1 , 10 ): T + = x_int print ( i , T ) каждый цикл, однако петля while падает в бесконечность. Например, мой ввод:

12

35

56

23

56

455

556

344

22

22

стоп

#add up by a loop
T = 0
while True:
    x = input("enter data: ")
    if x == 'stop':
        break
    x_int = int(x)
    for i in range(1, 10):
        T += x_int
        print(i, T)

python-3.x,while-loop,

-1

Ответов: 2


2 принят

Вам нужно запросить следующий ввод в цикле while. Как и в случае с вами, вы никогда не запрашиваете дополнительные данные, и вы никогда не увидите остановки. Я добавил подсказку, чтобы было более ясно.

#add up by a loop
import sys
T = 0
for line in sys.stdin:
    x = line.strip()
    if x == 'stop':
        break
    x_int = int(x)
    T += x_int
    print(i, T)

Некоторые из нас смущены тем, как вы хотите вводить данные. Если вам не нужны какие-либо подсказки и вы хотите прочитать любое количество строк от пользователя (или, возможно, из другой программы), вы можете напрямую прочитать stdin.

for

0

Попробуйте эту программу и посмотрите, работает ли она. Проблема с вашим кодом заключалась в отсутствии forцикла. Я не понимал, почему он использовался в вашей программе, надеюсь, вы поняли.

T = 0
i = 0
while True:
    x = input("enter data: ")
    if x == 'stop':
        break
    else:
       i =i+1
       x_int = int(x)
       T += x_int
       print(i, T)
Python-3.x, в то время как контур,
Похожие вопросы