私は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]()
いくつかのマイナーな修正が必要でした。
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に変更しました。
これで大丈夫です。()
が抜けていましたし、必要なのは"""
だけで、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")