【发布时间】:2017-01-03 15:40:20
【问题描述】:
编写一个重复读取数字直到用户输入“完成”的程序。输入“完成”后,打印出总数、计数和平均值。如果用户输入的不是数字,请使用 try 和 except 检测他们的错误并打印错误消息并跳到下一个数字。
这就是我所拥有的。
total = 0
count = 0
average = 0
while True:
number = input("Enter a number:")
if number == "done":
break
try:
total += numbers
count += 1
average = total / len(number)
except:
print ("Invalid input")
continue
print (total, count, average)
当我运行它时,由于某种原因,我总是得到无效的输入。我的 except 部分一定是错的。
编辑: 这就是我现在所拥有的,并且有效。但是,对于非数字,我确实需要尝试并除外。
total = 0
count = 0
average = 0
while True:
number = input("Enter a number:")
if number == "done":
break
total += float(number)
count += 1
average = total / count
print (total, count, average)
我想我明白了?!?!
total = 0
count = 0
average = 0
while True:
number = input("Enter a number:")
try:
if number == "done":
break
total += float(number)
count += 1
average = total / count
except:
print ("Invalid input")
print ("total:", total, "count:", count, "average:", average)
如果这花了我一个小时,我应该恐慌吗? 这不是我的第一种编程语言,但已经有一段时间了。
【问题讨论】:
-
这是python 2还是python 3?
-
你想在 except 块中捕获什么异常?删除 try-except ,看看你真正得到了什么错误。
-
大家好。这是 Python 3。@Daniel,我现在就试试。如果它没有输入数字,我正在尝试捕捉。
-
调试步骤 1:删除
try ... except以查看引发的异常。调试完成。 -
嗨。我更新了我现在所拥有的。它的工作,但我仍然需要尝试和除外。
标签: python