Alex Pavluck wrote: > I am trying to write the following code to block up evaluation and > prompting for entering new information. However, when I break the loop > in one object and then return it does not start at the beginning again > but rather at the point where it exited. Can someone look at the > following code and give me some feedback. > > > > > > yournum = input("I am thinking of a number between 1 and 100.\n Guess > which number: ") > mynum = (yournum-5) > > def eval(): > if yournum == mynum: > print "Wow! You got it!" > elif yournum < mynum: > print "Nope. Too low" > again() > elif yournum > mynum: > print "Oh, your too high" > again() > > def again(): > global yournum > yournum = input("guess again: ") > eval() > > eval()
Your code works fine for me. What's the problem exactly? Be aware, 'eval' is a built-in function, you might want to use a different name. And instead of "your" use "you're" the contraction of "you are"-- but that's not a code problem. FWIW, here's another way to structure your program without the recursion you're using. yournum = input("I am thinking of a number between 1 and 100.\n Guess which number: ") mynum = (yournum-5) def loop(): global yournum, mynum while yournum != mynum: if yournum < mynum: print "Nope. Too low" elif yournum > mynum: print "Oh, you're too high" again() print "Wow! You got it!" def again(): global yournum yournum = input("guess again: ") loop() HTH, ~Simon -- http://mail.python.org/mailman/listinfo/python-list