Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is return an implicit break in python function

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)?

like image 462
brb Avatar asked Aug 17 '26 08:08

brb


1 Answers

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?

like image 162
gsamaras Avatar answered Aug 20 '26 00:08

gsamaras



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!