列表数字相加int与str报错

列表里面数字相加为什么会显示int与str不能相加,我用的是列表的sum函数,但是显示报错了

img

会出现错误的代码为:
print("最高分"+list2[0])
print("最低分"+list2[-2])
这两行试图将int和str相加,会导致TypeError。
要修复这个错误,需要将int转换为str,可以使用str()函数:

print("最高分"+str(list2[0]))     
print("最低分"+str(list2[-2]))

str()函数将会把int转换为字符串,这样+操作符两边的操作数类型就一致了,错误消失。

当然也有可能是你打印的时候仅仅想拼接一下字符,但是python里面一般不这么写,除了上面我给的方法,你也可以写成这样,这是更加通用的一种方式:

print("最高分:{}".format(list2[0]))     
print("最低分:{}".format(list2[-2]))

我根据你的代码逻辑梳理了一下,整体修改并且优化完之后的代码如下,请采纳:

f=open("1.txt","rt",encoding="utf-8") 
list1=[]
for line in f.readlines():
    line2=line.strip()
    d=line2[-2:]  
    list1.append(d)
print(list1)    
list2=sorted(list1,reverse=True)
list3=reversed(list2)
print("最高分:{}".format(list2[0]))
print("最低分:{}".format(list2[-2])) 
Sum=0
print (sum(list3))
f.close()

你的列表里面的是字符串,不是数字

list1.append(map(int, d))