Nicholas Cannon <> writes:

> #checks if the user input is an integer value
> def checkint(a):
>       if a.isnumeric():
>               return True
>       else:
>               if a.isalpha():
>                       return False
>               else:
>                       return True

What code will be using this function? Why would that not be better
replaced with a ‘try … except’ construction?

That is, don't do this (Look Before You Leap)::

    foo = get_a_string()
    if checkint(foo):
        bar = int(foo)
        bar = None

Instead, do this (Easier to Ask Forgiveness than Permission)::

    foo = get_a_string()
        bar = int(foo)
    except ValueError:
        bar = None

If you need to create an integer based on a string, just do it, and
handle the exception (if any) at an appropriate level.

> There is one annoying error doing it this way and that is if you enter
> 12.ab or ab.12 it will say that it is okay. Still working on this so
> this should get sorted out soon.

You are re-inventing a wheel (the ‘int’ callable) which already does all
of that properly. Make use of it, and your frustration will be reduced.

 \     “It is far better to grasp the universe as it really is than to |
  `\    persist in delusion, however satisfying and reassuring.” —Carl |
_o__)                                                            Sagan |
Ben Finney


Reply via email to