Hello, I am getting a key error when I run my program. It is saying that i do not have ch defined in my dictionary(the code it is referring to is towards the bottom. I thought I had defined it by this: ch= input('\nEnter your menu choice:').upper() But that isnt working. How would i go about defining ch in my dictionary so I can get rid of this key error? Please and thank you for your help.   def display_averages_and_totals(self):        try:               with open ("HowManyHours.txt", "r") as file:#read data from file                      data = file.readlines()                     create_report()                                          total_credits = 0               total_study_hours = 0               total_students = 0               for line in data:                      values = line.strip().split(",")#using a delimiter to split the line into a list of values                      student = values[0]                      total_credits += int(values[1])                      total_study_hours += int(values[2])                      grade = values[3]                      total_students += 1#calculating total students               average_credits = total_credits / total_students#calculating average credits.               average_study_hours = total_study_hours / total_students#calculating average study hours.               print("Study Hours Report\n")               print(f"Created for:{report2.report_for},{report2.report_employee_id}\n")               print(f"Department:{report2.report_department}\n")               print(f"Created By: {report1.creator_name},{report1.creator_employee_id}\n")               print(f"Department:{report1.creator_department}\n")               print(f"Total Students: {total_students}\n")               print(f"Average Credits: {average_credits:.2f}\n")               print(f"Average Study Hours: {average_study_hours:.2f}\n") ##       report1 = Report(creator_name, creator_employee_id, creator_department)#, report_for, report_employee_id, report_department) ## ##       report_for = input("Enter the name of the report the person is for:") ##       report_employee_id = input("Enter the employee id of the person the report is for:") ##       report_department = input("Enter the department of the person the report is for:") ## ##       report2 = Report(report_for, report_employee_id, report_department)        except FileNotFoundError:               raise FileNotFoundError("HowManyHours.txt is not found.") if __name__=='__main__':        print('\t\t\tMain Menu')#main menu        print('A: Determine Hours to Study:')        print('B: Determine Grade:')        print('C: Display Averages and Totals:')        print('D: Quit Program');        ch= input('\nEnter your menu choice:').upper()        choice_option = {#menu options the user gets to choose from               'A': determineHours,               'B': determine_grade,               'C': display_averages_and_totals,               'D': quit        }        choice_option[ch]()          print("Thank you for using the Grade Calculator 2.0. Your support allows us to continue making apps you will love. Thank you.")

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Hello, I am getting a key error when I run my program. It is saying that i do not have ch defined in my dictionary(the code it is referring to is towards the bottom. I thought I had defined it by this:

ch= input('\nEnter your menu choice:').upper()

But that isnt working. How would i go about defining ch in my dictionary so I can get rid of this key error? Please and thank you for your help.

 

def display_averages_and_totals(self):
       try:
              with open ("HowManyHours.txt", "r") as file:#read data from file
                     data = file.readlines()
     
              create_report()
                          
              total_credits = 0
              total_study_hours = 0
              total_students = 0

              for line in data:
                     values = line.strip().split(",")#using a delimiter to split the line into a list of values
                     student = values[0]
                     total_credits += int(values[1])
                     total_study_hours += int(values[2])
                     grade = values[3]

                     total_students += 1#calculating total students
              average_credits = total_credits / total_students#calculating average credits.
              average_study_hours = total_study_hours / total_students#calculating average study hours.

              print("Study Hours Report\n")
              print(f"Created for:{report2.report_for},{report2.report_employee_id}\n")
              print(f"Department:{report2.report_department}\n")
              print(f"Created By: {report1.creator_name},{report1.creator_employee_id}\n")
              print(f"Department:{report1.creator_department}\n")
              print(f"Total Students: {total_students}\n")
              print(f"Average Credits: {average_credits:.2f}\n")
              print(f"Average Study Hours: {average_study_hours:.2f}\n")

##       report1 = Report(creator_name, creator_employee_id, creator_department)#, report_for, report_employee_id, report_department)
##
##       report_for = input("Enter the name of the report the person is for:")
##       report_employee_id = input("Enter the employee id of the person the report is for:")
##       report_department = input("Enter the department of the person the report is for:")
##
##       report2 = Report(report_for, report_employee_id, report_department)


       except FileNotFoundError:
              raise FileNotFoundError("HowManyHours.txt is not found.")

if __name__=='__main__':
       print('\t\t\tMain Menu')#main menu
       print('A: Determine Hours to Study:')
       print('B: Determine Grade:')
       print('C: Display Averages and Totals:')
       print('D: Quit Program');
       ch= input('\nEnter your menu choice:').upper()
       choice_option = {#menu options the user gets to choose from
              'A': determineHours,
              'B': determine_grade,
              'C': display_averages_and_totals,
              'D': quit
       }
       choice_option[ch]()
        


print("Thank you for using the Grade Calculator 2.0. Your support allows us to continue making apps you will love. Thank you.")
              
           
            
              
              

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Dictionary
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education