class Employee:
def set_name(self, name):
self.name = name
def set_IDnumber(self, IDnumber):
self.IDnumber = IDnumber
def set_department(self, department):
self.department = department
def set_jobTitle(self, jobTitle):
self.jobTitle = jobTitle
def get_name(self):
# Returns name
return self.name
def get_IDnumber(self):
# Returns IDnumber
return self.IDnumber
def get_department(self):
# Returns department
return self.department
def get_jobTitle(self):
# Returns job title
return self.jobTitle
def make_list():
# Declaring list for storing information
employee_list = []
print("Enter data for 3 employees")
# Loop to loop through 3 employees info
for i in range(1, 4):
print('Employee ' + str(i))
# Takes input for each object
name = input('Enter employee name: ')
idNumber = int(input('Enter employee ID number: '))
department = input('Enter employee department: ')
jobTitle = input('Enter job title: ')
employee = Employee()
# Sets information for each object
employee.set_name(name)
employee.set_IDnumber(idNumber)
employee.set_department(department)
employee.set_jobTitle(jobTitle)
employee_list.append(employee)
#Returns list for display
return employee_list
def displayEmployees(list):
# Declaring strings to be further manipulated for spacing purposes
shopString = "CHRISTY'S SHOP EMPLOYEE REPORT"
employeeString = "EMPLOYEE NAME"
identifierString = "IDENTIFIER"
departmentString = "DEPARTMENT"
titleString = "TITLE"
# String alignment
print(shopString.center(70))
print(employeeString + identifierString.center(40) + departmentString + titleString.rjust(10))
print("------------------" + "----------".center(30) + "----------".rjust(15) + "-----".rjust(10))
for item in list:
name = item.get_name()
idNumber = item.get_IDnumber()
department = item.get_department()
jobTitle = item.get_jobTitle()
print(name + idNumber.center(30) + department.rjust(15) + jobTitle.rjust(10))
def main():
employees = make_list()
displayEmployees(employees)
main()
这是我的程序。我试图将列表中的输出格式化如下:
如果有人能帮我,因为我发现由于列表中每个字符串的长度不同,会导致对齐错误,因此必须有更好的方法来正确对齐信息。提前谢谢。你知道吗
仅使用代码的相关部分和Format Specification Mini-Language,下面是一个尝试:
输出:
当然,按照您的意愿对其进行修改和格式化已经足够简单了。你知道吗
结尾的代码
我修改了你代码中的一些内容。你知道吗
首先,由于没有非accesor的方法,所以我使用namedtuple代替Employee类。如果你真的需要(在课堂上)获得者和设置者,请大声读这篇文章,并让它深入人心:
(引用here的话)。 我所说的属性是指true pythonic properties。 但是,请不要这样做,请参见:this answer
其次,您必须检查用户是否提供了良好的类型(因此try-except)。你知道吗
第三, 我用了一种叫做Format Specification Mini-Language (a.k.a. formatspec) 的东西。如果涉及到字符串格式,它真的很有帮助。你知道吗
这是我从main2()得到的: 你知道吗
如果您想更多地了解python字符串格式here,您可以找到一个很棒的教程。你知道吗
另外,我想推荐一篇我最喜欢的关于java与python的文章python is not java
相关问题 更多 >
编程相关推荐