Thank you, Marc On Mon, Mar 21, 2011 at 4:47 PM, Marc Tompkins <marc.tompk...@gmail.com> wrote: > On Mon, Mar 21, 2011 at 1:12 PM, Donald Bedsole <drbeds...@gmail.com> wrote: >> >> This works fine as long as the user enters a number. However, if they >> enter anything else, they just get the first :else statement, "You >> were too greedy." >> > I think that's because you're trying to do a string comparison, rather than > a numeric comparison. (if next <= "50":) You need to convert 'next' to an > int FIRST, then compare to 50, not "50". > >> >> My googling found solutions using an exception, but that hasn't been >> introduced yet in the tutorial. How would you solve this without >> using an exception? >> > > If you don't want to use an exception, check the entered value first (note: > I haven't checked my code, so caveat lector) - > >> next = raw_input(">") >> if next.isdigit(): >> if int(next) < 50: >> print "Nice, you're not greedy, you win!" >> else: >> dead("You were too greedy.") >> else: >> dead("Man, learn to type a number!") > > isdigit() returns True if every character is a digit; False otherwise. > http://docs.python.org/library/stdtypes.html > > > Using an exception: > >> next = raw_input(">") >> try: >> if int(next) < 50: >> print "Nice, you're not greedy, you win!" >> else: >> dead("You were too greedy.") >> except ValueError: >> dead("Man, learn to type a number!") > > Note that I specified ValueError - you want to make your exception handling > as specific as possible, so that if really unforeseen things go wrong, your > program doesn't blindly treat them as normal. In other words, if any > exception other than ValueError were to pop up here, you would want the > program to terminate and show you a traceback so you could fix it. > > >
It'll take me awhile to digest this. Thanks for your time and your help. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor