返回的是python函数中的隐式中断
我有下面的python函数来检查字符串是否是电话号码(我知道用正则表达式可以更简单地编写它…) 如果我写这篇文章,我会把返回的是python函数中的隐式中断,python,function,Python,Function,我有下面的python函数来检查字符串是否是电话号码(我知道用正则表达式可以更简单地编写它…) 如果我写这篇文章,我会把return True作为函数的第一行。当其中一个假条件为真时,是什么阻止函数返回True?return语句是隐式中断吗(例如,一旦其中一个False条件为True,代码就会中断,并且不会处理将来的任何行) 如果我写这篇文章,我会把返回值True作为函数的第一行 但是函数将返回(用其他词终止),忽略第一行下面的所有内容,因此函数将始终返回true return是一个关键字,它强
return True
作为函数的第一行。当其中一个假条件为真时,是什么阻止函数返回True
?return语句是隐式中断吗(例如,一旦其中一个False条件为True,代码就会中断,并且不会处理将来的任何行)
如果我写这篇文章,我会把返回值True作为函数的第一行
但是函数将返回(用其他词终止),忽略第一行下面的所有内容,因此函数将始终返回true
return
是一个关键字,它强制函数在该点终止,无论发生什么情况,代码行都会超出该点
换句话说,一旦函数的执行遇到return
关键字,它将停止函数进一步执行,并返回调用函数
阅读
return中的详细信息
意味着立即停止此函数的执行并返回到调用函数(在某些清理代码尚未完成的情况下存在例外情况)是的,return
将在此处结束任何函数。一个例外是,如果您从try
或中返回,则会执行finally
-块,但除外@schwobaseggl另一个例外是返回时使用block@MichaelButscher没错,但我必须说,这正是我对上下文管理器的期望。这与我第一次调试try和finally块返回时发生的神秘事件非常不同:D@schwobaseggl有趣的一定要说出“尝试”和“最终”的古怪。
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)