I have the following python function for checking whether a string is a phone number (I know it can be written simpler with regular expressions...)
def isPhoneNumber(text):
if len(text) != 12:
return False
for i in range(0,3):
if not text[i].isdecimal():
return False
if text[3] != '-':
return False
for i in range(4,7):
if not text[i].isdecimal():
return False
if text[7] != '-':
return False
for i in range(8,12):
if not text[i].isdecimal():
return False
return True
message = 'Call me at 415-555-1011 tomorrow. 415-555-9999 is my office number.'
for i in range(len(message)):
chunk = message[i:i+12]
if isPhoneNumber(chunk):
print('Phone number found: ' + chunk)
If I were writing this I would put the return True as the first line of the function. What prevents the function from returning True when one of the false conditions are True? Is a return statement an implicit break (eg once one of the False conditions are True the code breaks and doesn't process any future lines)?
If I were writing this I would put the return True as the first line of the function.
But then the function would return (terminate in others words), ignoring everything below the first line, thus your function would always return true.
return is a keyword that forces the function to terminate at that point, no matter what goes lines of code lie beyond that point.
In other words, once the execution of your function meets a return keyword, it will stop the function from executing further, and return to the calling function.
Read more in Why would you use the return statement in Python?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With