簡體   English   中英

在python函數中返回一個隱式中斷

[英]Is return an implicit break in python function

我有以下python函數來檢查字符串是否是一個電話號碼(我知道它可以用正則表達式寫得更簡單......)

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)

如果我寫這個,我會把return True作為函數的第一行。 是什么阻止返回函數True時假條件之一是真實的嗎? return語句是否為隱式中斷(例如,一旦False條件為True,代碼中斷並且不處理任何將來的行)?

如果我寫這個,我會把返回True作為函數的第一行。

但是然后函數將返回(以其他詞結束),忽略第一行下面的所有內容,因此您的函數將始終返回true。

return是一個強制函數在該點終止的關鍵字,無論代碼行超出該點。

換句話說,一旦函數的執行符合return關鍵字,它將停止函數進一步執行,並返回調用函數。

閱讀更多內容為什么要在Python中使用return語句?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM