how to finish a while loop...

Chris cwitts at gmail.com
Wed Feb 20 03:03:36 EST 2008


On Feb 20, 3:42 am, richie <richie... at gmail.com> wrote:
> 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

strip and lowercase your answer for better comparison checking.



More information about the Python-list mailing list