Pythonでメニューを作る

私はpythonで必要なメニューを作っています。

1.番号付きのメニューを印刷する 2.ユーザーに番号のついた選択肢を入力させる 3.ユーザーが選んだ選択肢の番号に応じて、そのアクションに特化した関数を実行する。今のところ、関数は実行されていることをプリントアウトするだけです。 4.ユーザーが何か無効なものを入力した場合、ユーザーにその旨を伝え、メニューを再表示する。 5. 辞書を使ってメニューのオプションを保存し、オプションの番号をキーに、そのオプションに表示するテキストを値にする。 6.6. メニューシステム全体はループの中で動作し、ユーザーが exit/quit を選択するまで選択肢を与え続け、その時点でプログラムを終了させる。

私は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!" 
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]()
解説 (0)

いくつかのマイナーな修正が必要でした。

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

4つあった引用符を3つに変更し(これは複数行の引用符に必要な数です)、"What would you like to do? "の後に閉じ括弧を追加し、inputをraw_inputに変更しました。

解説 (0)

これで大丈夫です。()が抜けていましたし、必要なのは"""だけで、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")
解説 (0)