You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python代码实现批量输入6名以上Employee类员工并统一打印?

问题

我正在通过Python中名为Employee的类实现员工信息的多用户输入,需求是输入至少6名员工后一次性打印所有员工信息,但当前代码每输入一名员工就立即打印其信息,请问该如何修改代码来实现需求?

当前代码:

class Employee:

    def __init__ (self, number, first, middle, last, address, rate, salary):
        self.number = number
        self.first = first
        self.middle = middle
        self.last = last
        self.address = address
        self.rate = rate
        self.salary = rate*28


    def fullname(self):
        return '{} {} {} {} {} {} {} {}'.format("Empoloyee Number: " + self.number + "\n",
                                                "First Name: " + self.first +"\n",
                                                "Middle Name: " + self.middle + "\n",
                                                "Last Name: "+ self.last + "\n",
                                                "Address: " + self.address + "\n Rate: ",
                                                self.rate,
                                                "\n Salary: ", self.salary)


i=1
while i <7:
    number = input("Enter Employee Number: ")
    first = input("Enter First Name: ")
    middle = input("Enter Middle Name: ")
    last = input("Enter Last Name: ")
    address = input("Enter Address: ")
    rate = float(input("Enter Rate: "))

    salary = rate*28

    emp = (Employee(number, first, middle, last, address, rate, salary))
    print (emp.fullname())
    i+=1
解决方案

核心逻辑是先把所有员工对象存储到容器中,等全部输入完成后再统一打印,具体修改步骤如下:

  1. 初始化一个空列表,用来保存所有创建的Employee对象
  2. 移除循环内的即时打印代码,将创建好的员工对象添加到列表中
  3. 循环结束后,遍历列表逐个打印员工信息

同时可以优化两个细节:

  • 原__init__方法内已经计算了薪资,外部无需重复计算salary = rate*28,创建对象时直接传入rate即可
  • 修正fullname方法里的拼写错误(Empoloyee改为Employee)

修改后的完整代码:

class Employee:

    def __init__ (self, number, first, middle, last, address, rate):
        self.number = number
        self.first = first
        self.middle = middle
        self.last = last
        self.address = address
        self.rate = rate
        self.salary = rate * 28  # 内部计算薪资,无需外部传入


    def fullname(self):
        return '{} {} {} {} {} {} {}'.format(
            "Employee Number: " + self.number + "\n",
            "First Name: " + self.first + "\n",
            "Middle Name: " + self.middle + "\n",
            "Last Name: "+ self.last + "\n",
            "Address: " + self.address + "\n",
            "Rate: " + str(self.rate) + "\n",
            "Salary: " + str(self.salary)
        )


# 初始化空列表存储员工对象
employees = []
i = 1
while i < 7:
    number = input("Enter Employee Number: ")
    first = input("Enter First Name: ")
    middle = input("Enter Middle Name: ")
    last = input("Enter Last Name: ")
    address = input("Enter Address: ")
    rate = float(input("Enter Rate: "))

    # 创建员工对象并添加到列表
    emp = Employee(number, first, middle, last, address, rate)
    employees.append(emp)
    i += 1

# 输入完成后统一打印所有员工信息
print("===== 所有员工信息 =====")
for emp in employees:
    print(emp.fullname())
    print("------------------------")

内容的提问来源于stack exchange,提问作者Hail Mary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:22:45