J'ai un script que j'ai écrit en python pour tester les algorithmes de tri que j'ai implémentés. La partie principale du programme demande à l'utilisateur de sélectionner parmi les algorithmes de tri d'une liste. Et puis, ils voudraient trier à partir d'un fichier de nombres ou sélectionner une liste de nombres aléatoires. Je l'ai installé (je pense) de sorte que taper un numéro qui n'est pas dans la première liste de choix affichera simplement "Mauvais choix" et essayer d'obtenir le numéro à nouveau. [Edit] Après avoir pris l'avis de la réponse, j'ai changé quelques entrées pour les entrées brutes. Et j'ai changé la structure du programme. Il fonctionne maintenant parfaitement, sauf qu'il imprime toujours "Bad Choice", même après un succès.Choix imbriqués dans un programme python
def fileOrRandom():
return raw_input("Would you like to read from file or random list? (A or B): ")
choices = {1:SelectionSorter,2:ComparisonSorter}
print "Please enter the type of sort you would like to perform."
print "1. Selection Sort\n2. Comparison Sort"
while(True):
try:
choice=input("Your choice: ")
for i in range(2):
if(choice==i+1):
choice2=fileOrRandom()
if(choice2=='A'):
fileName=raw_input("Please Enter The Name of the File to sort: ")
sorter = choices[choice](fileName)
sorter.timedSort(sorter.sort)
elif(choice2=='B'):
num = input("How many random numbers would you like to sort: ")
sorter = choices[choice](None,num)
sorter.timedSort(sorter.sort)
else:
raise Exception
else:
raise Exception
break
except Exception:
print "Bad Choice"
Mon problème est que cela fonctionne comme prévu pour la première partie où il retournera mauvais choix pour un certain nombre thats pas dans la liste, et il se fileOrRandom(), mais il imprime toujours « mauvais choix » lors de la sélection de bonnes valeurs devrait imprimer mes résultats parce sorter.timedSort(sorter.sort)
exécute mon algorithme de tri et imprime un tas d'autres choses à l'écran. Est-ce que je manque juste quelque chose de simple ou est-ce qu'il y a une meilleure manière de traiter ces options imbriquées dans un programme de python?
votre indentation sont fausses. regle-le, s'il te plait. – ghostdog74