上面是题目
下面是我的代码,字母a代表一行的数据,我想先把有“A"的都归到新列表,再用sum求和,但是一直提示我不同类型的数据不可以相加,不懂是我思路还是语法有问题
提示错误的那份代码那里应该是因为sum求和需要的是一个序列对象,可以把每次读入的一行数据的第三个数据存入列表, 然后再用sum求和即可;
第一份代码使用sum也是同样的问题,可以改为+=,然后用int()函数把a[2]从字符串类型转为整形即可,或者使用float()函数,修改如下:
参考链接:
Python sum() 函数 | 菜鸟教程
python中int的用法是什么-Python教程-PHP中文网
Python float() 函数 | 菜鸟教程
第一份代码:
N=int(input())
sum_a=0
sum_b=0
for i in range(N):
a = input().split()
if a[1]== "A":
sum_a+=int(a[2])
else:
#k=j
#l.append(k)
sum_b+=int(a[2])
print("A",sum_a)
print("B",sum_b)
print("ALL",sum_a+sum_b)
第二份代码:
N=int(input())
s=[]
l=[]
for i in range(N):
a = input().split()
if "A" in a:
s.append(int(a[2]))
else:
l.append(int(a[2]))
print("A",sum(s))
print("B",sum(l))
print("ALL",sum(s)+sum(l))