使用try/except的循环,直到输入'done'为止

0 投票
1 回答
2978 浏览
提问于 2025-04-28 04:03

我刚开始学习Python编程,想写一个循环,让用户输入数字,直到输入“done”为止,这时循环就结束,并打印出三个变量:数字、计数和平均值。(我不打算把这些数字存到列表里)

我还希望如果用户输入的不是整数,就打印“无效输入”,然后继续循环,只有输入“done”时才会停止。

可是我发现,即使我输入“done”,它还是一直返回“无效输入”并继续循环。我哪里出错了呢?有没有人能给我一些建议?

number = 0
count = 0
avg = 0
inp = 0
while True:
    try:
        inp = int(raw_input('Enter a number: '))
        if inp is 'done':    
            number = number + inp
            count = count + 1
            avg = float(number/count)
            break
    except:
        print 'Invalid input'
print number
print count
print float(avg)
暂无标签

1 个回答

0

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用一个叫做“库”的东西时,发现它的某些功能没有按照预期工作。这种情况可能会让人感到困惑,因为我们可能不知道问题出在哪里。

通常,这种问题可能是因为我们没有正确地使用这个库,或者是因为库本身有一些限制。解决这类问题的第一步是仔细阅读库的文档,看看有没有说明我们需要注意的地方。

另外,很多时候,社区的讨论也能提供帮助。像StackOverflow这样的网站上,有很多人分享他们的经验和解决方案。通过搜索相关的问题,我们可能会找到别人遇到过类似的情况,并且他们是如何解决的。

总之,遇到问题时,不要着急,先查阅文档和社区的资源,通常能找到解决办法。

sum = 0.0
count = 0
while True:
    inp = raw_input('Enter a number: ')
    if inp == 'done':
        break
    try:
        sum += int(inp)
        count += 1
    except ValueError:
        print 'Invalid input'
print sum
print count
if count != 0:  # Avoid division by zero
    print sum / count

撰写回答