In this article we will see how to implement isNumber() method using Python. This method takes in a string as input and returns True or False according to whether the string is a number or not.
Examples:
Input : "12345" Output : True Input : "-12345" Output : True Input : "abc" Output : False
Approach :
Here we will take advantage of the int() built-in function available in Python. Also with this approach we will see how Exception Handling comes to our aid. Using try-catch construct we try to convert the string to integer. In case the string cannot be converted the handler catches the exception that is thrown.
Below is the Implementation:
Python3
# Implementation of isNumber() function def isNumber(s): # handle for negative values negative = False if (s[ 0 ] = = '-' ): negative = True if negative = = True : s = s[ 1 :] # try to convert the string to int try : n = int (s) return True # catch exception if cannot be converted except ValueError: return False s1 = "9748513" s2 = "-9748513" s3 = "Lazyroar" print ( "For input '{}' isNumber() returned : {}" . format (s1, isNumber(s1))) print ( "For input '{}' isNumber() returned : {}" . format (s2, isNumber(s2))) print ( "For input '{}' isNumber() returned : {}" . format (s3, isNumber(s3))) |
Output :
For input '9748513' isNumber() returned : True For input '-9748513' isNumber() returned : True For input 'Lazyroar' isNumber() returned : False
Note : This is not the only way to implement the isNumber() function but it is arguably the fastest way of doing so. Try/Catch doesn’t introduce much overhead because the most common exception is caught without an extensive search of stack frames.