Python 3.x 为什么我的while循环落入无穷大?

Python 3.x 为什么我的while循环落入无穷大?,python-3.x,while-loop,Python 3.x,While Loop,我想输入一系列数字,并以“stop”结束,while循环是检查x是否不等于“stop”,它继续累加输入数字并输出每个循环的总和,然而while循环陷入无穷大。例如,我的输入是: 十二, 三十五 56 二十三 56 455 556 344 二十二 二十二 停止 您需要在while循环中提示输入下一个输入。目前,您从未提示输入其他数据,因此您将永远看不到停止。我添加了一个提示以便更清楚 #add up by a loop T = 0 while True: x = input("enter

我想输入一系列数字,并以“stop”结束,while循环是检查x是否不等于“stop”,它继续累加输入数字并输出每个循环的总和,然而while循环陷入无穷大。例如,我的输入是:

十二,

三十五

56

二十三

56

455

556

344

二十二

二十二

停止


您需要在while循环中提示输入下一个输入。目前,您从未提示输入其他数据,因此您将永远看不到停止。我添加了一个提示以便更清楚

#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)
我们中的一些人对如何输入数据感到困惑。如果您不需要任何提示,并且希望从用户处读取任意数量的行(或者从另一个程序通过管道传输),则可以直接读取stdin

#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)

试试这个程序,看看它是否有效。代码的问题是不需要
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)

input
只读取一行。而且
x
永远不会改变,所以循环当然会不断重复……for循环令人费解!我把它放在里面,因为我想这就是OP想要总结的方式。也许他认为这就是读取额外数据行的方法。我明白你说的,但这对我来说没有任何意义,因为它所做的只是将相同的int值加9次(是的,我们必须等待他的评论才能看到他的真正意思):)
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)