我正在努力在python中创建一个需要的菜单:
我是Python的新手,我无法弄清楚我在代码中做错了什么。
到目前为止,这是我的代码:
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
这显然是他想要的:
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!"
答案 0 :(得分:8)
def my_add_fn():
print "SUM:%s"%sum(map(int,raw_input("Enter 2 numbers seperated by a space").split()))
def my_quit_fn():
raise SystemExit
def invalid():
print "INVALID CHOICE!"
menu = {"1":("Sum",my_add_fn),
"2":("Quit",my_quit_fn)
}
for key in sorted(menu.keys()):
print key+":" + menu[key][0]
ans = raw_input("Make A Choice")
menu.get(ans,[None,invalid])[1]()
答案 1 :(得分:7)
只需要进行一些小修改:
ans=True
while ans:
print ("""
1.Add a Student
2.Delete a Student
3.Look Up Student Record
4.Exit/Quit
""")
ans=raw_input("What would you like to do? ")
if ans=="1":
print("\n Student 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")
我已将四个引号更改为三个(这是多行引号所需的数字),在"What would you like to do? "
之后添加了一个右括号,并将输入更改为raw_input。
答案 2 :(得分:5)
这应该这样做。您错过了)
,而您只需要"""
而不是其中的4个。你也不需要一个elif。
ans=True
while ans:
print("""
1.Add a Student
2.Delete a Student
3.Look Up Student Record
4.Exit/Quit
""")
ans=raw_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")
ans = None
else:
print("\n Not Valid Choice Try again")
答案 3 :(得分:2)
看起来你刚刚完成了第3步。而不是运行一个函数,你只需打印一个语句。函数按以下方式定义:
def addstudent():
print("Student Added.")
然后通过写addstudent()
来调用。
我建议您使用while
循环进行输入。您可以在循环外定义菜单选项,将print语句放在循环中,然后执行while(#valid option is not picked)
,然后将if语句放在while之后。或者,如果未选择有效选项,则可以执行while
循环和continue
循环。
此外,字典按以下方式定义:
my_dict = {key:definition,...}