Test for number?

George Sakkis george.sakkis at gmail.com
Tue Sep 5 19:43:32 CEST 2006


Neil Cerutti wrote:

> On 2006-09-04, George Sakkis <george.sakkis at gmail.com> wrote:
> > x=raw_input('\nType a number from 1 to 20')
> > try:
> >     x = int(x)
> >     if x<1 or x>20: raise ValueError()
> > except ValueError:
> >     Do_B
> > else:
> >     Do_A
> >
> > If you want to distinguish between the two error cases (not a
> > number vs number not in [1,20]), handle the second one as
> > "Do_C" instead of raising ValueError.
>
> Is the original value of x available in Do_B and Do_A, or will it
> have been clobbered before getting there?

In Do_A, x will be an integer between 1 and 20. In Do_B, it depends; if
the original input cannot be converted to an int, it will be preserved,
otherwise x will be an integer (lower than 1 or larger than 20).

George




More information about the Python-list mailing list