我想输入一系列数字并以“stop”结束,while循环是检查x是否不等于'stop',它会继续加上输入数并输出每个循环的总和,然而,while循环落入无穷大。例如,我的输入是:
12
35
56
23
56
455
556
344
22
22
停止
#read the input
x = input()
#add up by a loop
T = 0
x_int = int(x)
while x != 'stop':
for i in range(1, 10):
T += x_int
print(i, T)
答案 0 :(得分:2)
您需要提示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)
答案 1 :(得分: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)