取所有包含数字的行的总和,跳过那些带有字母的行,然后将总和写回另一个fi

2024-10-04 11:31:29 发布

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

我已经写了下面的代码,读取一个文件,其中包含的行与数字和字母我想计算所有数字的总和在一行,并跳过与字母行,最后写回另一个文件的总和。你知道吗

要读取的文件包含以下数据:

a b c d e

1 2 3 4 5

f g h i j

6 7 8 9 10

k l m n o

11 12 13 14 15

我的python代码如下

 f=open("C:/Users/Mudassir Awan/Desktop/test.txt",'r+')
    s=0
    l=0
    for line in f:

       for i in line.split():
           if i.isnumeric():
               s=s+i
       print(s)
       if s!=0:
          m=open("C:/Users/Mudassir Awan/Desktop/jk.txt",'a')
          m.write(str(s))
          m.write("\n")

          m.close()
     s=0

我得到的错误是“TypeError:不支持+:'int'和'str'的操作数类型”

enter image description here


Tags: 文件代码intxtforif字母line
3条回答

您正在向整数中添加字符串。添加数字时请尝试以下操作:

s = s + int(i)

isnumeric()只检查字符串中的所有字符是否都是数字字符。它不会更改它们的数据类型。你知道吗

您需要转换i的数据类型,它在str之后行。拆分()

for i in line.split():
           if i.isnumeric():
               s=s+int(i)

在Python中,十进制字符、数字(下标、上标)和具有Unicode数值属性的字符(分数、罗马数字)都被认为是数字字符。你知道吗

str.isnumeric方法标识为数字的字符串仍然是字符串。在对这些字符串执行数字操作之前,应该将它们转换为整数。你知道吗

更改:

s=s+i

收件人:

s=s+int(i)

相关问题 更多 >