Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This is a python program and I get and error saying this \"line 50, in <module>

ID: 3838138 • Letter: T

Question

This is a python program and I get and error saying this "line 50, in <module>
for employee in employeeList:
NameError: name 'employeeList' is not defined"

Please help.

# starting of Employee class
class Employee(object):
def __init__(self): #declaring Constructor
self.name = ""
self.iDnumber = ""
self.department = ""
self.jobTitle = ""
  
# setter methode for setting values to the class properties
def setName(self,name):
self.name=name
def setIDnumber(self,iDnumber):
self.iDnumber=iDnumber
def setDepartment(self,department):
self.department=department
def setJobTitle(self,jobTitle):
self.jobTitle=jobTitle
  
# getter methode for getting values of the class properties
def getName(self):
return self.name
def getIDnumber(self):
return self.iDnumber
def getDepartment(self):
return self.department
def getJobTitle(self):
return self.jobTitle

# methode which takes object as an argument and display its properties
def display(emp_object):
print("Name : ",emp_object.getName())
print("IDnumber : ",emp_object.getIDnumber())
print("Department : ",emp_object.getDepartment())
print("JobTitle : ",emp_object.getJobTitle())

# Main methode of the program
if __name__ == "__main__":
employeeList = [] #List to hold the Employee objects
emp1 = Employee()
emp2 = Employee()
emp3 = Employee()
  
# appending objects to the list
employeeList.append(emp1)
employeeList.append(emp2)
employeeList.append(emp3)
input()
  
# Initializing each objects of the list
for employee in employeeList:
emp_name = input("Enter your Name ")
employee.setName(emp_name)
emp_iDnumber = input("Enter your iDnumber ")
employee.setIDnumber(emp_iDnumber)
emp_department = input("Enter your Department ")
employee.setDepartment(emp_department)
emp_jobTitle = input("Enter your JobTitle ")
employee.setJobTitle(emp_jobTitle)
  
# Displaying each objects of the list
for emp_object in employeeList:
display(emp_object)

Explanation / Answer

This is because the for loop (Line number 56:)

for employee in employeeList: is defined outside the if __name__ == "__main__": block

since employeeList is defined within the if block and if you try calling same employeeList from outside it will say employeeList not defined error. Since employeeList is local variable inside the if block.

please move your for loops (from line number 56) inside if block so that you can access employeeList.

code :

# Main methode of the program

if __name__ == "__main__":

    employeeList = [] #List to hold the Employee objects
    emp1 = Employee()
    emp2 = Employee()
    emp3 = Employee()
    # appending objects to the list
    employeeList.append(emp1)
    employeeList.append(emp2)
    employeeList.append(emp3)
    input()

    # Initializing each objects of the list
    for employee in employeeList:
        emp_name = raw_input("Enter your Name ")
        employee.setName(emp_name)
        emp_iDnumber = raw_input("Enter your iDnumber ")
        employee.setIDnumber(emp_iDnumber)
        emp_department = raw_input("Enter your Department ")
        employee.setDepartment(emp_department)
        emp_jobTitle = raw_input("Enter your JobTitle ")
        employee.setJobTitle(emp_jobTitle)

    # Displaying each objects of the list
    for emp_object in employeeList:
        display(emp_object)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote