首页 > 解决方案 > result=sum(staffSalary) TypeError: +: 'int' 和 'str' 不支持的操作数类型

问题描述

我试图在下面代码中的点后用 2 位数字将员工工资相加,但给了我这个错误。

我了解错误的类型,但不幸的是,我不知道如何解决它。我正在尝试不同的方法,但它带有相同的错误。

staffName=[]
staffSalary=[]
for name in range(0,5):
    print('Enter staff name:')
    staffName.append(input())
for salary in range(0,5):
    print('Enter salary:')
    staffSalary.append("{:.2f}".format(float(input())))
print('Staff details entered:\n')
for i in range(0,5):
    print(staffName[i], ' ', staffSalary[i])

result=sum(staffSalary)
print('\nTotal salary amount is: ', result)

totalIncrease=(result * 10) / 100 + result
print('Total salary amount with 10% increase: ',totalIncrease)

标签: python

解决方案


在您的行staffSalary.append("{:.2f}".format(float(input())))中,您似乎正在接受输入并将其转换为浮点数(听起来不错),但随后您将其转换为字符串。因此,您最终添加到列表中的是字符串,而不是浮点数。

我想你只是想要staffSalary.append(float(input())。然后列表将包含所有浮动项目。当您稍后有一个包含这些数字的字符串时,您可以进行一些字符串转换。


推荐阅读