为了账号安全,请及时绑定邮箱和手机立即绑定

如果以文本文件中的数值开头,则查找行的总和

如果以文本文件中的数值开头,则查找行的总和

忽然笑 2021-07-31 03:53:31
我有一个包含数据的文本文件,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过滤器的列表理解来完成。我也保持你目前的编程水平。


查看完整回答
反对 回复 2021-08-03
?
喵喵时光机

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)


查看完整回答
反对 回复 2021-08-03
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号