
Concept explainers
7.16 LAB: Breakout room activity - Interactive Menu
Learning Goals
- use a dictionary to store menu items
- use a function to print formatted menu options
- use a while loop to create an interactive
program - check the user input using if branches
- check that an option is correct (verify that a dictionary key exists)
- use break to interrupt the program execution
Introduction
In this lab, we will be building an application that uses an interactive menu.
Let's say our high-level menu has the following options:
L : List A : Add E : Edit D : Delete M: Show statistical data S : Save the data R : Restore data from file Q : Quit this programThese key-option mappings will be stored in a dictionary in the main program.
print_main_menu() function
Write the print_main_menu() that accepts a dictionary of keys-options like the one shown above and prints the menu options stored in that dictionary in an easy-to-read format. Below is an example of the result of calling print_main_menu() (notice the question it asks at the top - it is part of the function output):
Example
Given the menu with the following options as mentioned above, the call to print_main_menu(main_menu) will output:
========================== What would you like to do? L - List A - Add E - Edit D - Delete M - Show statistical data S - Save the data R - Restore data from file Q - Quit this program ==========================Program flow
The expected program flow is:
- The main program starts with a menu of options given above
- Loop indefinitely (while the user didn't choose to exit):
- Print the menu to the user
- Get the user's choice from input()
- Check if the user's choice is a valid option in the menu (is it one of the dictionary keys?).
- If the input is a valid option, print the option that user selected
- If not, simply continue from the top of the loop
- If the user entered 'Q', break the while loop
Instructions
-
Fix TODO 1: Add the options from the instructions to the_menu dictionary inside the main program.
-
Fix TODO 2: Implement the "Quit" option, breaking from the while loop if the user input is an uppercase OR lowercase "Q".
-
Fix TODO 3: Check whether a provided option is a valid menu option.
Each time a valid menu option is provided, the program "echoes" it back to the user as follows:
print(f"You selected option {opt} to > {the_menu[opt]}.")def print_main_menu(menu):
"""
Given a dictionary with the menu,
prints the keys and values as the
formatted options.
Adds additional prints for decoration
and outputs a question
"What would you like to do?"
"""
if __name__ == "__main__":
the_menu = {} # TODO 1: add the options from the instructions
opt = None
while True:
# print_main_menu(...) # TODO 1: uncomment, define the function, and call with the menu as an argument
print("::: Enter an option")
opt = input("> ")
if opt == ...: # TODO 2: make Q or q quit the program
print("Goodbye!\n")
break # exit the main `while` loop
else:
if ...: # TODO 3: check of the character stored in opt is in the_menu dictionary
print(f"You selected option {opt} to > {the_menu[opt]}.")
else:
print(f"WARNING: {opt} is an invalid option.\n")

![The provided script is a Python program designed for a command-line menu interface. The script will likely appear on an educational website to demonstrate basic control flow and input handling in Python. Below is a transcription and explanation of the code:
```python
if __name__ == "__main__":
the_menu = {} # TODO 1: add the options from the instructions
opt = None
while True:
# print_main_menu(...) # TODO 1: uncomment, define the function, and call with the menu as an argument
print("::: Enter an option")
opt = input("> ")
if opt == ...: # TODO 2: make Q or q quit the program
print("Goodbye!\n")
break # exit the main `while` loop
else:
if ...: # TODO 3: check if the character stored in opt is in `the_menu` dictionary
print(f"You selected option {opt} to > {the_menu[opt]}.")
else:
print(f"WARNING: {opt} is an invalid option.\n")
```
### Detailed Explanation:
1. **Initialization**:
- `the_menu` is a dictionary intended to hold menu options. It’s currently empty and requires filling as per instructions.
- `opt` is initialized as `None` to store user input.
2. **Main Loop**:
- A `while True` loop continuously runs, allowing users to interact with the menu until a specific condition is met to exit.
3. **User Input**:
- The program prompts the user to enter an option with `print("::: Enter an option")` followed by `input("> ")` to capture input.
4. **Condition for Quitting**:
- A placeholder condition `if opt == ...:` is set up for quitting the program. The developer should replace `...` with conditions like if `opt` is 'Q' or 'q'.
5. **Menu Selection**:
- The code checks if the input `opt` exists in `the_menu` dictionary.
- If `opt` is valid, it prints the associated menu item.
- If not, it warns the user that the option is invalid.
### To Do:
- **TODO 1**: Add options to `the_menu` and define the `print_main_menu()` function.
- **TODO 2**: Implement](https://content.bartleby.com/qna-images/question/ccac55ee-732b-4607-a38e-f5bd0a8aacb2/343249c5-1208-4c91-b870-5653f80fb0fd/3z31pr7_thumbnail.png)

Trending nowThis is a popular solution!
Step by stepSolved in 4 steps with 2 images

- Cassignm222 Assignment 2 features designing a program using pseudocode and then completing the program in Python using a list. M4Lab2 asks you to write a Drawing app in Python and Pygame using a list for the colors. Each lab asks you to write pseudocode that plans the program's logic before you write the program in Python and to turn in three things: 1) the pseudocode, 2) a screenshot of the output, and 3) the Python program. # Step 1: Define a colors list to describe 3 colors.# Hint, use their RGB number values Step 2: define a radius variable for your pen at 5, 10 or 15# Test them to see which radius you prefer and use it # Step 3: write the elif for pressing button 2, similar to button 1 # Step 4: write the statement for button 2's color # Step 5: write the else statement for button 3 # Step 6: choose a color from the list??arrow_forwardComputer Science Part C: Interactive Driver Program Write an interactive driver program that creates a Course object (you can decide the name and roster/waitlist sizes). Then, use a loop to interactively allow the user to add students, drop students, or view the course. Display the result (success/failure) of each add/drop.arrow_forwardbegin = System.nanoTime(); //we measure in nanoseconds. // put your code here. end = System.nanoTime(); time = end - begin; Page Part 2. f) Create a new StringBuilder Object using no-arg constructor. g) Using for loop to append the array elements one by one to the StringBuilder (one per loop iteration) Hint: to append an element to a StringBuilder, use the append() method in StringBuilder h) Output the StringBuilder on the console. Record a run-time it took to append all integers to the StringBuilder (record run-time of 2.g.)). Please submit a screenshot. The screenshot should match the following example: of 3 012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 it took 59250 nanoseconds to append 50 integers to the StringBuilder. ZOOM + *karrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





