The challenge
Given a string s, write a method (function) that will return true if its a valid single integer or floating number or false if its not.
Valid examples, should return true:
isDigit("3") isDigit(" 3 ") isDigit("-3.23")
should return false:
isDigit("3-4") isDigit(" 3 5") isDigit("3 5") isDigit("zero")
Test cases
test.assert_equals(isDigit("s2324"), False) test.assert_equals(isDigit("-234.4"), True)
The solution in Python
Option 1(with try
/except
):
# create a function def isDigit(string): # use a `try/except` block try: # True if can convert to a float float(string) return True except: # otherwise return False return False
Option 2(with regex/Regular expression
):
# import the regex match module from re import match def isDigit(string): # return a Boolean if the match was met return bool(match(r"^[-+]?\d+\.?\d*?$", string))