循环使用try / except输入和循环,直到输入'done'

时间:2014-10-17 16:30:47

标签: python while-loop try-catch except

我是Python的新编码,我试图编写一个循环,要求输入数字并读取它直到用户输入"完成",它会在哪里然后退出循环并打印变量:number,count和average。 (不要试图在列表中存储任何东西)

我也想要它打印"无效输入"如果用户输入任何不是整数的东西,则继续循环,除非其完成"。

不幸的是,它会返回"输入无效"并且即使我进入"完成"也会保持循环。我究竟做错了什么?有人能指出我正确的方向吗?

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 :(得分:0)

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