简单的python cicle不工作

时间:2017-10-21 22:30:54

标签: python python-3.x

我尝试输入多个数字并获得一个带有总和的输出和计数器,直到输入为字符串"和#34;但它只是一遍又一遍地添加第一个输入。我做错了什么?

var image = document.createElement('img');
               image.src=image;
               image.alt='altimg'
               infowincontent.appendChild(image);

3 个答案:

答案 0 :(得分:1)

您必须在循环中调用input ,而不是在循环之前调用。在尝试将其转换为浮点数之前,还必须检查其值是否为.

x = input()
while x != '.':
    try:
        x = float(x)
    except ValueError:
        print("{} not a floating point number, ignoring".format(x))
    else:
        sum = sum + x
        counter += 1
    x = input()
print ("sum:", sum)
print ("counter:", counter)

为避免在两个不同的地方调用input,您可以使用显式if使循环“无限”以检查当前输入:

while True:
    x = input()
    if x == ".":
        break
    try:
        x = float(x)
    except ValueError:
        print("{} not a floating point number, ignoring".format(x))
    else:
        sum = sum + x
        counter += 1
print ("sum:", sum)
print ("counter:", counter)

答案 1 :(得分:0)

你做不到:

float()

的:

"."

此功能仅接受数字。

您还需要这样做:

input()

进入循环

答案 2 :(得分:0)

我认为你的意思是每次迭代都会得到新的输入,并在输入为".'时打破循环。这是你应该做的:

sum,counter=0,0 #set numeric variables
done=False #create a Boolean to control the loop
while not done:
    x=input()
    if x==".":
        done=True # break the loop if x is "."
    else:
        sum+=float(x)
        counter+=1
print ("Sum:",sum)
print ("Counter:",counter)