Jan-04-2021, 11:29 PM
Can anyone tell me please why my delete_employee() function doesn't actually delete an employee from the list, I'm banging my head against a wall all day trying to get it to work.
class Employee(object): #Constructor def __init__(self,theFirstName,theLastName,theAge,theEmployeeNumber,theJobTitle,theAmountPerHour,theHoursWorked,total_wage): self.set_first_name(theFirstName) self.set_last_name(theLastName) self.age = theAge self.employeeNumber = theEmployeeNumber self.jobTitle = theJobTitle self.amountPerHour = theAmountPerHour self.hoursWorked = theHoursWorked self.total_wage = self.calculate_wage() #Accessor Methods def get_first_name(self): return self.firstName def get_second_name(self): return self.secondName def get_age(self): return self.age def get_employee_number(self): return self.employeeNumber def get_job_title(self): return self.jobTitle def get_amount_per_hour(self): return self.amountPerHour def get_hours_worked(self): return self.hoursWorked #Mutator Methods def set_first_name(self,theFirstName): if not theFirstName: raise Exception("FIRST NAME FIELD CANNOT BE EMPTY!") self.firstName = theFirstName def set_last_name(self,theLastName): if not theLastName: raise Exception("LAST NAME FIELD CANNOT BE EMPTY!") self.lastName = theLastName def set_age(self,theAge): self.age = theAge def set_employee_number(self,theEmployeeNumber): self.employeeNumber = theEmployeeNumber def set_job_title(self,theJobTitle): self.jobTitle = theJobTitle def set_amount_per_hour(self,theAmountPerHour): self.amountPerHour = theAmountPerHour def set_hours_worked(self,theHoursWorked): self.hoursWorked = theHoursWorked # Calculate weekly wage def calculate_wage(self): return round(self.get_amount_per_hour() * self.get_hours_worked()) #ToString Method def __str__(self): return '\nName: {} \nSecond Name:{} \nAge:{} \nEmployee Number:{} \nJob Title:{} \nAmount per Hour:{} \nHours ' \ 'Worked:{} \nTotalWage:{} '.format(self.firstName, self.lastName, self.age, self.employeeNumber, self.jobTitle, self.amountPerHour, self.hoursWorked, self.calculate_wage()) class Operator(Employee): def __init__(self,theFirstName,theLastName,theAge,theEmployeeNumber,theJobTitle,theAmountPerHour,theHoursWorked,total_wage): super().__init__(theFirstName,theLastName,theAge,theEmployeeNumber,theJobTitle,theAmountPerHour,theHoursWorked,total_wage) def __str__(self): return super(Operator,self).__str__() def enter_employee_details(): firstName = input("Enter Employee Firstname: ") lastName = input("Enter Employee Lastname: ") age = int(input("Enter Employee Age: ")) employeeNumber = input("Enter EmployeeNumber: ") jobTitle = input("Please enter Employee JobTitle: ") amountPerHour = float(input("Enter Employee Rate Per Hour: ")) hoursWorked = int(input("Enter Employee HoursWorked for the week: ")) return Operator(firstName,lastName,age,employeeNumber,jobTitle,amountPerHour,hoursWorked,total_wage = 0) def look_up_employee(employees): found = False firstName = input("Enter Employee's name: ") for employee in employees: if firstName in employee.get_first_name(): print(employee) found = True if not found: print("NO SUCH EMPLOYEE FOUND! ") def show_all_employees(employees): print("Showing all Employees: ") for employee in employees: print(employee) def delete_employee(employee): print("\n**********Delete Employee***********") firstName = input("Please enter firstName: ") secondName = input("Please enter secondName: ") for i in employee: if firstName in employee and secondName in employee: employee.remove(i) break def menu_choices(): print("\n*************Employee DataBase***************") print("1) New Employee. 2) Lookup Employee.") print("3) Show all Employee's. 4) Delete Employee.") print("5) Exit.") def exit_message(): print("Exiting............") def main(): option = 0 employees = [] running = True while running: menu_choices() option = input(">") if option == "1": employees.append(enter_employee_details()) elif option == "2": look_up_employee(employees) elif option == "3": show_all_employees(employees) elif option == "4": delete_employee(employees) elif option == "5": running = False exit_message() else: print("UNRECONIZED INPUT!") main()Any help appreciated