python 3.2中的奇怪错误

时间:2011-04-07 05:44:32

标签: python python-3.x syntax-error

以下代码用于查找给定输入数字集的平均值。

#!/usr/bin/env python3
print("Enter some integers")
count = 0
total = 0
while True:
    line = input("integer: ")
    if (line):
        try:
            number = int(line)
        except ValueError as err:
            print(err)
            continue
        total += number
        count += 1
        #print("Post",line)
    else:
        break
if count:
    print('Count is ',count ,'Total is ',total,'Mean is ',total/count)

但是,每当我运行程序时,即使输入数字,偶数编号的输入也会出错。以下是示例输出。

Enter some integers
integer: 4
integer: 5
invalid literal for int() with base 10: 'integer: 5'
integer: 5
integer: 6
invalid literal for int() with base 10: 'integer: 6'
integer:
Count is  2 Total is  9 Mean is  4.5

但是,如果我在else:语句之前取消注释该行,则此代码可以正常工作。谁能告诉我这里发生了什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你的问题是剪切和粘贴的问题。

该行

number = int(line)

生成错误

invalid literal for int() with base 10: 'integer: 6'

这意味着该行

line = input("integer: ")

必须收到输入:

'integer: 6'

唯一可以收到这个的方法就是你输入的内容。 显然,对于“integer:6”中的类型,你不会那么愚蠢。因此,发生这种情况的唯一原因是,您已经剪切并粘贴了以前的输入,而没有注意到您复制时的情况很多,这种情况一直发生在我身上。