如何用Python自定义Employee类计算并输出员工薪资总和?
解决方案
你的代码需要两处关键调整才能实现薪资总和计算:
- 薪资输入未转为数值类型(
input()默认返回字符串,直接赋值会导致无法进行数值累加) - 缺少薪资总和的计算与输出逻辑
修改后的完整代码
class Employee : empid = 0 name = None salary = 0.0 def getInput(self) : print("Enter the empid :: ", end ="") self.empid = input() print("Enter the name :: ", end ="") self.name = input() print("Enter the salary :: ", end ="") # 将输入的薪资转为浮点型,支持数值计算 self.salary = float(input()) def display(self) : print("Employee id = " + str(self.empid)) print("Employee name = " + self.name) print("Employee salary = " + str(self.salary)) def main( args) : e = [None] * (3) i = 0 while (i < 3) : e[i] = Employee() e[i].getInput() i += 1 print("**** Data Entered as below ****") i = 0 while (i < 3) : e[i].display() i += 1 # 计算并输出所有员工薪资总和 total_salary = 0.0 for emp in e: total_salary += emp.salary print(f"**** Total Salary of All Employees: {total_salary} ****") if __name__=="__main__": Employee.main([])
核心修改说明
- 薪资类型转换:在
getInput方法中,把self.salary = input()改为self.salary = float(input()),确保薪资是浮点型数值,能正常参与加法运算。 - 总和计算逻辑:遍历员工列表,累加每个员工的
salary属性得到总和,最后用格式化字符串输出结果。
内容的提问来源于stack exchange,提问作者Dishant Kumar Yadav
相关产品推荐
相关产品推荐

