我想写一个函数来输出一个和

2024-09-25 00:25:08 发布

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

几周前我刚开始学习Python,我想写一个函数,打开一个文件,计算并累加每行中的字符,然后打印出这些字符等于文件中的字符总数。你知道吗

例如,给定一个文件test1.txt:

lineLengths('test1.txt')

输出应为:
15+20+23+24+0=82(+0可选)

到目前为止,我的情况是:

def lineLengths(filename):
     f=open(filename)
     lines=f.readlines()
     f.close()

     answer=[]
     for aline in lines:
         count=len(aline)

它做了我想要它做的,但我不知道如何包括所有的数字加在一起,当我有功能打印。你知道吗


Tags: 文件函数txtclosedef情况openfilename
3条回答

如果您只想打印每行长度的总和,可以这样做:

def lineLengths(filename):
     with open(filename) as f:
         answer = []
         for aline in f:
             answer.append(len(aline))

     print("%s = %s" %("+".join(str(c) for c in answer), sum(answer))

但是,如果您还需要跟踪所有单独行的长度,则可以使用append方法为答案列表中的每行添加长度,然后使用sum(answer)打印总和

就这么简单:

sum(map(len, open(filename)))

open(filename)返回遍历每一行的迭代器,每一行都通过len函数运行,结果是summed。你知道吗

试试这个:

f=open(filename)
mylist = f.read().splitlines()
sum([len(i) for i in mylist])

相关问题 更多 >