列表里面数字相加为什么会显示int与str不能相加,我用的是列表的sum函数,但是显示报错了
会出现错误的代码为:
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))