how to finish a while loop...

richie richieyan at gmail.com
Wed Feb 20 02:42:48 CET 2008


On Feb 20, 9:35 am, icarus <rsa... at gmail.com> wrote:
> > To the original poster.... what environment are you running this in?
>
>             Linux.  Xubuntu if that matters.
>
> > When I put your program in notepad and run it from the windows command
> > prompt it works.
>
>             yeah yeah...same here.
> After I got the tip that it actually worked, I went into the eclipse
> directory where the program lives, ran it there from the shell, and it
> worked.  Meaning, I didn't modify anything on the file itself (by
> accident or on purpose).
>
> > But when I paste it into eclipse and run it
> > eclipse's console, it doesn't work because answer seems to have a
> > stray '\r' carriage return (CR) and therefore the comparison to 'no'
> > fails.
>
>           I get no 'compile' errors there.
>           I get regular execution but it just doesn't change the
> condition to False at the very end.
>           Therefore it loops forever.  I used other values like zeros
> and ones to make sure I could print the values when the interpreter
> got down to that line.  Everything checked.  Just didn't change the
> condition on the main loop.

I've changed this code a little.
condition = True
while ( condition ):
    try:
        integer_one = int ( raw_input( "Please enter an integer: " ) )
        integer_two = int ( raw_input( "Please enter the second
integer: " ) )
        division = integer_one / integer_two
    except( ZeroDivisionError ):
        print "\nDivision by zero detected"
    except( ValueError ):
        print "\nYou didn't enter an integer"
    else:
        print "The result is", division
        answer = raw_input("Do you want to try again (yes or no)? ")
        print answer
        #answer="no"
        if answer == "yes":
            condition=True
        elif answer == "no":
            condition=False
        print "Good bye, you don't want to continue"
        print condition
And i got this result in eclipse3.2:
Please enter an integer: 8
Please enter the second integer: 4
The result is 2
Do you want to try again (yes or no)? no
no
Good bye, you don't want to continue
True
Please enter an integer:

it seems the input "no" in eclipse's console to answer won't equal the
"no" we compare.
And when I remove the comment and I get this result:
Please enter an integer: 8
Please enter the second integer: 4
The result is 2
Do you want to try again (yes or no)? no
no
Good bye, you don't want to continue
False




More information about the Python-list mailing list