Python试图查找文件中数字的平均值时,出现无效的int()文本错误消息

2024-03-29 05:24:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在输入以空格分隔的整数文件中查找数字的平均值,并得到以下错误:

Traceback (most recent call last): File "second.py", line 4, in lst =list(map(int, line)) ValueError: invalid literal for int() with base 10: ' '

这是我的密码:

import sys
line = sys.stdin.readline()
while line:
    value = int(line.strip())
    lst =list(map(int, value))
    avg = sum(lst)/len(lst)
    print(avg)

以下是输入文件:

1 4 15 12 8

我做错了什么


Tags: 文件mapvalue错误sysline数字整数
3条回答

-1)在一行中输入数字
-2) 拆分行
-3) 转换每个数字,并将其添加到数字列表中
-4) 计算平均值
-5) 印刷品

import sys
line = sys.stdin.readline()
lst = []
    
for x in line.split():
    value = int(x.strip())
    lst.append(value)

avg = sum(lst)/len(lst)

print(lst)
print("the average = ", avg)

这只适用于一行,也可以循环多行

两件事:

  1. 您必须使用split()来拆分数字

例如

['1 4 15 12 8'].split() => ['1', '4', '15', '12', '8']
  1. 您必须在列表中添加数字
import sys
lines = ['1 4 15 12 8']
lst = []
for line in lines:
    for x in line.split():
        value = int(x.strip())
        lst.append(value)
        avg = sum(lst)/len(lst)
        print(avg)

输出:

1.0
2.5
6.666666666666667
8.0
8.0

可能是:

while line:
    lst =[int(i) for i in line.split(" ")] 
    avg = sum(lst)/len(lst)
    print(avg)

相关问题 更多 >