我有一个包含数据的文本文件,a b c d e1 2 3 4 5f g h i j6 7 8 9 10k l m n o11 12 13 14 15和所需的输出是 0, 15, 0, 40, 0, 65.我的尝试f=open("C:/Users/kaleemi/Desktop/text.txt","r+")s=0 for line in f: for i in line: if i.isnumeric(): s=s+int(i) else: continue print(s) s=0 输出:0、15、0、31、0、20。请帮助我更正此代码。
2 回答

达令说
TA贡献1821条经验 获得超6个赞
你的问题是,你加起来的数字在每一行,而不是数量。 split在个体数量和更改的行那些到int。
s=0
for line in f:
for i in line.split():
if i.isnumeric():
s=s+int(i)
print(s)
s=0
输出:
0
15
0
40
0
65
请注意,我删除了无用的continue.
如果您需要在一行中输出,您需要将它们收集在一个列表中,并在您阅读所有输入行后打印它们。我保留了您原始程序的格式。
是的,这可以通过带有sum过滤器的列表理解来完成。我也保持你目前的编程水平。

喵喵时光机
TA贡献1846条经验 获得超7个赞
import numpy
with open("/Users/michael/Desktop/text.txt") as f:
data = f.readlines()
for line in data:
try:
l = list(map(float, line.rstrip().split(" ")))
mean = int(numpy.sum(l))
except ValueError:
mean = 0
print(mean)
添加回答
举报
0/150
提交
取消