我正在为一个虚构的纸业公司创建一个部门员工列表的代码。我已经弄清楚了大部分代码,但我遇到了很多错误,我不是100%确定如何修复这些错误。我正在用python编写代码,并使用pycharm。建议/帮助将不胜感激:)
class employee:
def __init__(self, name, age, position) -> None:
"""Initializes all employees with name, age, and position attributes"""
self.name = name
self.age = age
self.position = position
def display_employees(listOfEmployees):
"""Displays all employees in the company"""
print()
print("Employees in Dunder Mifflin are: ")
print()
for item listOfEmployees:
print(item.name + ",", str(item.age) + ",", item.position)
def allocate_department(listOfEmployees):
"""Sorts all employees to departments and returns a list of departments"""
allocatedList = []
managementList = []
salesList = []
accountantList = p[]
for employee in listOfEmployees:
if employee.position == "Manager" or "Manager" in employee.position
managementList.append(employee)
elif employee.position == "Salesperson" or "Salesperson" in employee.position:
salesList.append(employee)
elif employee.position == "Accountant" or "Accountant" in employee.position:
accountantList.append(employee)
else:
pass
allocatedList.append(managementList)
allocatedList.append(salesList)
allocatedList.append(accountantList)
return allocatedList
def display_department_employees(listOfDep):
"""Displays employees in their departments"""
print()
print("The individual employees in each department shown below:")
print("---------------------------------------")
print()
n = 1
for dep in listOfDep:
if n == 1:
print("Management:")
print("-----------")
elif n==2:
print("Salesperson:")
print("-----------")
else:
print("Accountants")
print("-----------")
for emp1 in dep:
print(emp1.name + ",", str(emp1.age) + ",", emp1.position)
print()
n += 1
def head_of_department(listOfDep):
"""Finds max age and then sets employee as head"""
for dep in listOfDep:
max = 0
for emp1 in dep:
if emp1.age > max:
max = emp1.age
for emp1 in dep:
if max == emp1.age:
emp1.position = "Head" + emp1.position
employeeList = ()
employeeList.append(employee("Michael", 45, "Manager"))
employeeList.append(employee("Dwight", 40, "Assistant to the Manager"))
employeeList.append(employee("Jim", 35, "Manager"))
employeeList.append(employee("Pam", 30, "Receptionist"))
employeeList.append(employee("Angela", 32, "Accountant"))
employeeList.append(employee("Kevin", 42, "Accountant"))
employeeList.append(employee("Stanley", 55, "Salesperson"))
employeeList.append(employee("Andy", 38, "Salesperson"))
employeeList.append(employee("Ryan", 30, "Salesperson"))
employeeList.append(employee("Creed", 55, "Salesperson"))
我确信我必须将一些表单listOfEmployees改为self,但是对于具体的第14行,pycharm在"listOfEmployees“下面给了我一条红线,所以我不确定该怎么做,因为它要求我创建一个参数或重命名引用,并且我确定我确实创建了一个参数?我不是1000%确定。这是为了课堂上的一个项目,我正在尽我最大的努力。感谢你们对这个T__T的耐心
发布于 2021-11-30 21:19:12
你的代码有很多缩进的问题。记住,Python对此非常挑剔。我主要需要修复缩进问题和一些可能只是打字错误的琐碎问题,因为您似乎理解底层代码。当您看到一条红线时,请尝试将其悬停在上方,看看Pycharm试图告诉您什么。你会犯很多这样的错误,所以学习如何使用你的工具来查找这些错误是值得的。
class employee:
def __init__(self, name, age, position) -> None:
"""Initializes all employees with name, age, and position attributes"""
self.name = name
self.age = age
self.position = position
def display_employees(listOfEmployees):
"""Displays all employees in the company"""
print()
print("Employees in Dunder Mifflin are: ")
print()
for item in listOfEmployees:
print(item.name + ",", str(item.age) + ",", item.position)
def allocate_department(listOfEmployees):
"""Sorts all employees to departments and returns a list of departments"""
allocatedList = []
managementList = []
salesList = []
accountantList = []
for employee in listOfEmployees:
if employee.position == "Manager" or "Manager" in employee.position:
managementList.append(employee)
elif employee.position == "Salesperson" or "Salesperson" in employee.position:
salesList.append(employee)
elif employee.position == "Accountant" or "Accountant" in employee.position:
accountantList.append(employee)
else:
pass
allocatedList.append(managementList)
allocatedList.append(salesList)
allocatedList.append(accountantList)
return allocatedList
def display_department_employees(listOfDep):
"""Displays employees in their departments"""
print()
print("The individual employees in each department shown below:")
print("---------------------------------------")
print()
n = 1
for dep in listOfDep:
if n == 1:
print("Management:")
print("-----------")
elif n==2:
print("Salesperson:")
print("-----------")
else:
print("Accountants")
print("-----------")
for emp1 in dep:
print(emp1.name + ",", str(emp1.age) + ",", emp1.position)
print()
n += 1
def head_of_department(listOfDep):
"""Finds max age and then sets employee as head"""
for dep in listOfDep:
max = 0
for emp1 in dep:
if emp1.age > max:
max = emp1.age
for emp1 in dep:
if max == emp1.age:
emp1.position = "Head" + emp1.position
employeeList = []
employeeList.append(employee("Michael", 45, "Manager"))
employeeList.append(employee("Dwight", 40, "Assistant to the Manager"))
employeeList.append(employee("Jim", 35, "Manager"))
employeeList.append(employee("Pam", 30, "Receptionist"))
employeeList.append(employee("Angela", 32, "Accountant"))
employeeList.append(employee("Kevin", 42, "Accountant"))
employeeList.append(employee("Stanley", 55, "Salesperson"))
employeeList.append(employee("Andy", 38, "Salesperson"))
employeeList.append(employee("Ryan", 30, "Salesperson"))
employeeList.append(employee("Creed", 55, "Salesperson"))
display_employees(employeeList)
https://stackoverflow.com/questions/70176030
复制相似问题