2017-09-22 2 views
0

Je construis un menu (interface) pour un projet (programme console pur) et j'ai des problèmes pour le gérer. Pour la première fois que je vais construire un programme avec une telle quantité massive d'options, comme ceci:Comment gérer un menu texte long et compliqué en python?

three available options 
If chosen option 1 then eight another options available 
If option 2 then six other available options 
If option 3 then three other available options 
. 
.. 
... 

Et ainsi de suite. De plus, l'utilisateur doit choisir les options par leur numéro, et si (par exemple) il saisit "haha" au lieu de "2" ou autre, je veux imprimer un message sur un choix incorrect et le renvoyer à la branche initiale de options Pas au début du programme, au "branche d'options" où il était assis. C'est mon plus gros problème. Je trouve difficile le manque de commande "goto" de Pascal, car je pouvais retourner directement à l'endroit dans le code que je voulais.

+0

'goto' n'est en fait généralement pas recommandé dans aucune langue (je ne sais pas comment il est en Pascal). Utilisez 'loops' à la place:' while', 'for', etc. Puisque tout algorithme défini avec' goto' peut être converti en une boucle –

Répondre

0

Votre programme doit probablement être décomposé à des parties plus petites qui peuvent travailler isolément ou comme tuyau, un après l'autre:

la construction d'un programme avec une telle quantité massive d'options

Si l'interface que vous mentionnez est l'interface de ligne de commande (cli), vous pouvez essayer les commandes/options de modèle avec docopt qui vous permet de prototyper votre commande cli par commande.

J'imagine que vous pouvez vous obtenir des options en cours d'exécution comme

python your_script.py command_A --option1=a --option2=123 
python your_script.py command_B -a -b -c --option3=zzzz [email protected]#$%@#^% 

ou quelque chose d'autre à votre discrétion.