将空字符串输入转换为浮点数

新手上路,请多包涵

我编写了这样的代码来查找用户输入的数字的算术平均值,但由于某种原因,程序最终无法将字符串转换为浮点数。我应该改变什么?

 print("I'm going to find the arithmetical mean! \n")
jnr = 0; sum = 0
negative = "-"
while True:
    x = input(f"Type in {jnr}. nr. (To end press Enter): ")
    if negative not in x:
        jnr += 1
    elif negative in x:
        pass
    elif x == "": break
    sum = sum + float(x)

print("Aritmethmetical mean for these numbers is: "+str(round(sum/(jnr-1), 2)))

我得到了他的错误:

追溯(最近一次通话最后一次):文件“C:\Users\siims\Desktop\Koolitööd\individuaalne proge.py”,第 11 行,总和 = 总和 + 浮点数(x)ValueError:无法将字符串转换为浮点数

原文由 Siim Salmi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 941
1 个回答

正如我在评论中所说,错误来自于当用户使用 --- 时调用 float(x) Enter 导致错误。在不更改所有内容的情况下修复代码的最简单方法是首先检查输入是否为 "" 。这样您就不会尝试将空字符串转换为浮点数。

 print("I'm going to find the arithmetical mean! \n")
jnr = 0;
sum = 0
negative = "-"
while True:
    x = input(f"Type in {jnr}. nr. (To end press Enter): ")

    if x == "":
        break
    elif negative not in x:
        jnr += 1
        sum = sum + float(x)

print("Aritmethmetical mean for these numbers is: "+str(round(sum/(jnr-1), 2)))

原文由 scharette 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题