On 11/05/13 07:12, Steven D'Aprano wrote:

def menu():
     print "Welcome to Tomb Explorer!"
     print "A game of Exploration from Bulldog Development"
     print "Press [1] to Play or [2] to Exit"
     menu1=raw_input(" >> ")
     if menu1== "2":
         quit()
     if menu1== "1":
         room1()
     menu()

The second problem is that *inside* the "menu" function you make a
recursive call to itself. While that is sometimes a legitimate
technique, this time it will lead to problems as the menu function gets
called again and again and again and again in an (almost) infinite loop.

To the OP, not Steven...
Beginners often use this technique to deliberately create a loop within their functions. If that is what you wanted then it's better to use one of Pythons native loop structures, 'while' or 'for'.

'for' is generally used when the number of iterations is known or can be calculated. So in your case a 'while' loop is more appropriate. Typically your code should look like:

while True:   # loop 'forever'
    # ...display menu
    if menu1== "2":
         break   # exit the while loop
    elif menu1== "1":
         room1()
    elif... # other menu choices.
    else:
       # display invalid choice error


HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to