I'm working on making a menu in python that needs to:
- Print out a menu with numbered options
- Let the user enter a numbered option
- Depending on the option number the user picks, run a function specific to that action. For now, your function can just print out that it's being run.
- If the user enters in something invalid, it tells the user they did so, and re-display the menu
- use a dictionary to store menu options, with the number of the option as the key, and the text to display for that option as the value.
- The entire menu system should run inside a loop and keep allowing the user to make choices until they select exit/quit, at which point your program can end.
I'm new to Python, and I can't figure out what I did wrong with the code.
So far this is my code:
ans=True
while ans:
print (""""
1.Add a Student
2.Delete a Student
3.Look Up Student Record
4.Exit/Quit
"""")
ans=input("What would you like to do?"
if ans=="1":
print("\nStudent Added")
elif ans=="2":
print("\n Student Deleted")
elif ans=="3":
print("\n Student Record Found")
elif ans=="4":
print("\n Goodbye")
elif ans !="":
print("\n Not Valid Choice Try again")
ANSWERED
This is what he wanted apparently:
menu = {}
menu['1']="Add Student."
menu['2']="Delete Student."
menu['3']="Find Student"
menu['4']="Exit"
while True:
options=menu.keys()
options.sort()
for entry in options:
print entry, menu[entry]
selection=raw_input("Please Select:")
if selection =='1':
print "add"
elif selection == '2':
print "delete"
elif selection == '3':
print "find"
elif selection == '4':
break
else:
print "Unknown Option Selected!"
It looks like you've just finished step 3. Instead of running a function, you just print out a statement. A function is defined in the following way:
then called by writing
addstudent()
.I would recommend using a
while
loop for your input. You can define the menu option outside the loop, put the print statement inside the loop, and dowhile(#valid option is not picked)
, then put the if statements after the while. Or you can do awhile
loop andcontinue
the loop if a valid option is not selected.Additionally, a dictionary is defined in the following way:
There were just a couple of minor amendments required:
I have changed the four quotes to three (this is the number required for multiline quotes), added a closing bracket after
"What would you like to do? "
and changed input to raw_input.This should do it. You were missing a
)
and you only need"""
not 4 of them. Also you don't need a elif at the end.