Is there any way to tell whether a string represents an integer (e.g., '3'
, '-17'
but not '3.14'
or 'asfasfas'
) Without using a try/except mechanism?
is_int('3.14') == False is_int('-7') == True
Advertisement
Answer
If you’re really just annoyed at using try/except
s all over the place, please just write a helper function:
def represents_int(s): try: int(s) except ValueError: return False else: return True
>>> print(represents_int("+123")) True >>> print(represents_int("10.0")) False
It’s going to be WAY more code to exactly cover all the strings that Python considers integers. I say just be pythonic on this one.