首页 > 解决方案 > 使用 for 循环通过 try 和 except 遍历数字列表

问题描述

我想编写一个重复读取数字直到用户输入“完成”的程序。输入“完成”后,打印出总数,使用 for 循环计数。这是我搜索后找到的程序:

c=0 #c=count t=total
t=0
while True:
    x=input('enter no.')
    try:
        x=float(x)
        c=c+1
        t=t+x
    except:
        if x=='done':
            break
   
print(c)
print(t)

关于这个程序的困惑是为什么我们必须将 x 转换为浮点类型,以及我们想要迭代用户给出的列表的条件在哪里,比如 for i in x 等等。

标签: python

解决方案


由于您无法将字符串转换为浮点数,因此会引发错误

被它检查的 except 块捕获x=="done"

正确的方法:

迭代用户给出的数字

a=[]
while True:
    x=input("enter no:")
    if(x=="done"):
        break
    elif(x.isnumeric()):
        a.append(x)
    else:
        print("wrong")
    print(a)

推荐阅读