以下代码用于查找给定输入数字集的平均值。
#!/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:语句之前取消注释该行,则此代码可以正常工作。谁能告诉我这里发生了什么?
提前致谢。
答案 0 :(得分:1)
你的问题是剪切和粘贴的问题。
该行
number = int(line)
生成错误
invalid literal for int() with base 10: 'integer: 6'
这意味着该行
line = input("integer: ")
必须收到输入:
'integer: 6'
唯一可以收到这个的方法就是你输入的内容。 显然,对于“integer:6”中的类型,你不会那么愚蠢。因此,发生这种情况的唯一原因是,您已经剪切并粘贴了以前的输入,而没有注意到您复制时的情况很多,这种情况一直发生在我身上。