Je travaille sur la création d'un menu en python qui doit:
Je suis nouveau sur Python et je ne peux pas comprendre ce que j'ai fait de mal avec le code.
Jusqu'à présent, c'est mon 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")
RÉPONSE
C'est ce qu'il voulait apparemment:
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]()
Quelques modifications mineures étaient nécessaires:
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")
J'ai changé les quatre guillemets en trois (c'est le nombre requis pour les guillemets multilignes), ajouté un crochet de fermeture après "What would you like to do? "
et changé l'entrée en raw_input.
Cela devrait le faire. Vous manquiez un )
et il vous suffit de """
pas 4 d'entre eux. De plus, vous n'avez pas besoin d'un Elif à la fin.
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")
Il semble que vous venez de terminer l'étape 3. Au lieu d'exécuter une fonction, vous imprimez simplement une instruction. Une fonction est définie de la manière suivante:
def addstudent():
print("Student Added.")
puis appelé en écrivant addstudent()
.
Je recommanderais d'utiliser une boucle while
pour votre entrée. Vous pouvez définir l'option de menu en dehors de la boucle, placer l'instruction print à l'intérieur de la boucle et faire while(#valid option is not picked)
, puis placer les instructions if après le temps. Ou vous pouvez faire une boucle while
et continue
la boucle si une option valide n'est pas sélectionnée.
De plus, un dictionnaire est défini de la manière suivante:
my_dict = {key:definition,...}