python - 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)
解决方案
在您的行staffSalary.append("{:.2f}".format(float(input())))
中,您似乎正在接受输入并将其转换为浮点数(听起来不错),但随后您将其转换为字符串。因此,您最终添加到列表中的是字符串,而不是浮点数。
我想你只是想要staffSalary.append(float(input())
。然后列表将包含所有浮动项目。当您稍后有一个包含这些数字的字符串时,您可以进行一些字符串转换。
推荐阅读
- photoshop - 如何仅针对剩余文件启动 Photoshop 未完成的批处理
- python-3.x - 为什么编码没有改变?
- python - 如何防止 Sonarcloud 突出显示 logging.Filter 的扩展作为潜在的安全风险
- javascript - JavaScript,这可以启用反射跨站点脚本 (XSS) 攻击
- javascript - 使用不带货币符号的 Intl.NumberFormat 进行货币格式化
- java - 需要帮助保持我的流程运行,直到我输入关键字
- reactjs - 有没有办法在不同的地方“镜像”反应搜索栏组件?
- java - Why would serialized objects update the version of a schema on Schema Registry?
- sass - Sass 模块名称间距与点符号中的文件名
- r - 定位并放置前一个元素