0
import Course
import Person
import Student


CREATE = 1
ADD_STUDENTS = 2
COURSE_INFO = 3
ADD_SCORES = 4
QUIT = 5


def main():

  choice = 0

  while choice != QUIT:
    choice = get_menu_choice()

    if choice == CREATE:
        add_Course()
    elif choice == ADD_STUDENTS:
        add_Student()
    elif choice == COURSE_INFO:
        view_Course()
    elif choice == ADD_SCORES:
        add_Scores()
    elif choice == QUIT:
        quit()



def get_menu_choice():
  print()
  print(" Welcome to CourseAware's Faculty Menu")
  print('---------------------------')
  print('1. Create Course ')
  print('2. Add Students to a Course')
  print('3. View Course Information')
  print('4. Add Test scores to a Course')
  print('5. Exit')
  print()

choice = int(input('Enter your choice: '))

while choice < CREATE or choice > QUIT:
    choice = int(input('Enter a valid choice: '))

return choice

I'm having a problem in this area. I wanna ask the user to create a course. Once he added the information I want to send it to the option 3 to display it.

def add_Course():

  name = input("Enter course name: ")
  number = input("Enter course number: ")
  units = input("Enter courses units: ")
  instructor = input("Enter courses Instructor: ")
  myCourse = Course.Course(name,number,units,instructor)

  print("Courses' Name: ",myCourse.getName())
  print("Courses' Number: ",myCourse.getNumber())
  print("Courses' Units: ",myCourse.getUnits())
  print("Courses' Instructor: ",myCourse.getInstructor())
  print("Course Added!")
  return myCourse

def add_Student():
  Name = input("Enter First and Last Name of Sudent: ")
  Status = input("Enter Status of Stdent: ")
  GPA = input("Enter Students GPA: ")
  newStudent = Student.Student(Name, Status, GPA )

  print("Student' First Name: ",newStudent.getName())
  print("Student' Status: ",newStudent.getStatus())
  print("Student' Instructor: ",newStudent.getGPA())


  infile = open('student.txt','a')
  infile.write('\n')
  infile.write(newStudent)

So once the user crated the new course, and he chooses to view it I want it to print to the information is entered in the add_Course option. def view_Course():

  print("Courses' Name: ",myCourse.getName())
  print("Courses' Number: ",myCourse.getNumber())
  print("Courses' Units: ",myCourse.getUnits())
  print("Courses' Instructor: ",myCourse.getInstructor())

main()

Thanks any feedback is welcomed !

Pintun
  • 716
  • 1
  • 7
  • 23
Supreme
  • 17
  • 1
  • 6

2 Answers2

0

In your second example you do not declare myCourse.

myCourse = Course.Course(name,number,units,instructor)

is missing.

Arount
  • 9,853
  • 1
  • 30
  • 43
0

In Python every function has it's own namespace. If you create a variable in the function, it will only live until the function returns and it is only accessible inside the function.

To solve your problem you have to call the first function and have a return value. Then you call the second function with that value:

def add_Course():

    name = input("Enter course name: ")
    number = input("Enter course number: ")
    units = input("Enter courses units: ")
    instructor = input("Enter courses Instructor: ")
    myCourse = Course.Course(name,number,units,instructor)

    print("Courses' Name: ",myCourse.getName())
    print("Courses' Number: ",myCourse.getNumber())
    print("Courses' Units: ",myCourse.getUnits())
    print("Courses' Instructor: ",myCourse.getInstructor())
    print("Course Added!")
    return myCourse

def view_Course(myCourse):

    print("Courses' Name: ",myCourse.getName())
    print("Courses' Number: ",myCourse.getNumber())
    print("Courses' Units: ",myCourse.getUnits())
    print("Courses' Instructor: ",myCourse.getInstructor())

course = add_Course()
view_Course(course)
Pintun
  • 716
  • 1
  • 7
  • 23
Klaus D.
  • 13,874
  • 5
  • 41
  • 48