[EMAIL PROTECTED] wrote: > I am very new to both programming and Pyhton and while trying to do > some practice using A byte of python an Error pops up on the IDLE > shell. I am using windows XP. PLease see below. > while running: > guess = int(raw_input('Enter an integer : ')) > > if guess == number: > print 'Congratulations, you guessed it.' > running = False # this causes the while loop to stop > elif guess < number: > print 'No, it is a little higher than that.' > else: > print 'No, it is a little lower than that.' > else: > print 'The while loop is over.' > # Do anything else you want to do here > > print 'Done' > > After typing the above as the book says, I get the error NameError: > name 'guess' is not defined > What Am I doing wrong? > You are not describing the problem accurately. The above program would not even start *running*. It would produce an IndentationError: expected an indented block on the second line. If you did manage to get the to get the program entered with correct indentation, it would gave a NameError on the variable named running not on guess.
So now: Tell us what really happened, and perhaps your question can be answered. Hint: Each of the lines that end in a colon start a block of code which must be indented. Any variable used in a calculation must be given a value *before* the calculation is carried out. I think this might be what you were trying to do (untested): number = 12345 # Defines the number variable before using while True: guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' break # this causes the while loop to stop elif guess < number: print 'No, it is a little higher than that.' else: print 'No, it is a little lower than that.' print 'The while loop is over.' print 'Done' Gary Herron -- http://mail.python.org/mailman/listinfo/python-list