用Python创建菜单

2024-04-25 21:00:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python制作一个菜单,需要:

  1. 打印带有编号选项的菜单
  2. 允许用户输入编号选项
  3. 根据用户选择的选项号,运行特定于该操作的函数。现在,您的函数可以打印出它正在运行。
  4. 如果用户输入了无效的内容,它会告诉用户他们输入了,然后重新显示菜单
  5. 使用字典存储菜单选项,其中选项的编号为键,显示该选项的文本为值。
  6. 整个菜单系统应该在一个循环中运行,并允许用户做出选择,直到他们选择退出/退出,此时程序可以结束。

我是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") 

回答

这显然是他想要的:

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!" 

Tags: 函数代码用户true选项菜单student编号
3条回答
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]()

这样就可以了。你丢失了一个),你只需要""",而不是其中的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")

只需要做一些小的修改:

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? "后添加了一个右括号,并将输入改为原始输入。

相关问题 更多 >