def is_digit(n):
try:
int(n)
return True
except ValueError:
return False
Почему
Как обойти это ?
is_adv_digit = lambda x: x.isdigit() if x[:1]!='-' else x[1:].isdigit()
>>> is_adv_digit('erwer')
False
>>> is_adv_digit('erwe5345r')
False
>>> is_adv_digit('345345')
True
>>> is_adv_digit('-345345')
True
>>> is_adv_digit('-')
False
>>> is_adv_digit('-1')
True
>>> is_adv_digit('1-')
False