The present recipe shows a function to check whether or not its argument is consistent with standard numerical formats: integer, floating point, scientific, or engineering.
1 2 3 4 5 6 7 8
def is_a_number(x): """This function determines if its argument, x, is in the format of a number. It can be number can be in integer, floating point, scientific, or engineering format. The function returns '1' if the argument is formattted like a number, and '0' otherwise.""" import re num_re = re.compile(r'^[-+]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?$') return str(re.match(num_re, x))) != 'None'
Often it is necessary to validate an entry as being a number before passing into another program or script. At the heart of the function is a regular expression consistent with numbers in integer, floating point, scientific, or engineering format.