Python 从类中获取多个用户输入

Python Taking Multiple User Input from a Class

提问人:Hail Mary 提问时间:2/26/2023 更新时间:2/26/2023 访问量:38

问:

我正在从名为 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

`
python-3.x 列表 python-2.7 pycharm

评论

1赞 Michael Butscher 2/26/2023
(1) 修复所显示代码的缩进问题。(2) 确定一个 Python 版本并删除另一个标签。

答:

0赞 ProfDFrancis 2/26/2023 #1

我认为您只需要将您创建的每个员工附加到一个列表中,然后在附加所有 6 个员工后打印该列表。

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)


employees = []

i=1
while i<=6:
    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))
    employees.append(emp)

print(employees)

评论

0赞 Hail Mary 2/26/2023
感谢您的帮助。但是如何显示我所有输入的所有输出,这些输入不是唯一的地址?从结果中,我只得到输入的唯一地址的输出,例如 [<__main__。<__main__ 0x00000186E1212950> 处的 Employee 对象。0x00000186E1212AD0> 处的 Employee 对象,<__main__。0x00000186E1212C50>] 处的 employee 对象。