Joseph,
I don't know if this will help or not, but some observations:
> def manipulate():
> manipulate = raw_input("Type 'help' for help\nManipulate>> ")
> if manipulate == "play":
> w.tell()
> elif manipulate == "back()":
> main_menu()
You expect the user to type 'play' or 'back()'
One response is a command the other a pseudo function call
complete with parentheses. Thats not a very consistent user
experience.
Also by calling main_menu from inside manipulate you are effectively
using recursion as a loop. Thats OK if the number of loops is
small but if this program were used over a long preiod you
will eventually run out of menory.
Its usually better to return a value and have a main control
loop somewhere that calls the functions. For example have your
main_menu function display the prompt, sanity check the input
and return a valifd response from the user. Then have a single
if/elif tree dispatch the appropriate function that returns
success or failure. Wrap the menu and if/elif tree inside a
loop that exits on error or command.
That way ypur program can run indefinitely without risk of
memory overflow.
def main_menu():
....
return choice
while True:
choice = main_menu()
if choice == 'foo':
foo()
elif chooice == 'bar':
bar()
# etc...
elif choice == 'exit'
break
else: break
> ... to play a .wav music file. I tried w.play() but got an error
that
> module has no attribute 'play'.
Have you used dir(w) to see what it does offer? Even better what does
the documentation say? Have you tried help(w)?
HTH,
Alan G
Author of the Learn to Program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor