Python 3.x 为什么我的while循环落入无穷大?
我想输入一系列数字,并以“stop”结束,while循环是检查x是否不等于“stop”,它继续累加输入数字并输出每个循环的总和,然而while循环陷入无穷大。例如,我的输入是: 十二, 三十五 56 二十三 56 455 556 344 二十二 二十二 停止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
您需要在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)