[Tutor] Creating sub-menus?

Alan Gauld alan.gauld at btinternet.com
Wed Dec 31 10:10:45 CET 2008


"nathan virgil" <sdragon1984 at gmail.com> wrote

> Each menu is a function that prints out options, saves a raw_input 
> as the
> variable choice, and returns choice. In the main menu, each option 
> leads to
> a sub-menu. After choice is defined, however, the sub-menu "tags" 
> the value
> of choice.

Yes that can all work.

> Then create a loop of while choice !=q, run current_menu, and 
> include a
> bunch of statements along the lines of:
>
> if choice == <value that leads to first sub-menu>:
>        current_menu = <function name for first sub-menu>

Consider using a dictionary keyed by your combined choice values.
Then the big if/elif chain shrinks to

returnValue = FuncDict[choice](params)

The only challenge with this route is making all the functions
take a single input argument. But that argument can be a tuple :-)

> This seems like it would work, but for some reason, every time I run 
> the
> code, it freezes after I give input from the main menu. Can anybody 
> help? I
> can show my source code, but indentation doesn't seem to copy/paste 
> very
> well, so it may be a bit hard to read...

Try putting it on the pastebin web site and sending us the URL.
That gives us colour coding of syntax too which helps read it!

HTH

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld 




More information about the Tutor mailing list