在我的Python 3(.5)脚本中,我有一个简单的
现在,这个代码按预期工作,并且循环会在找到第一个匹配项时停止。
我知道在Python中使用
鉴于此,我的问题是:我必须使用
考虑到这个问题,如果我的代码像下面这样写,是否更好呢?
for
循环,看起来像这样:request = "simple string"
ignore = (
# Tuple that contains regex's to ignore
)
for (i, regex) in enumerate(ignore):
if re.search(regex, request):
print("Found regex {0}.".format(i))
return False
现在,这个代码按预期工作,并且循环会在找到第一个匹配项时停止。
我知道在Python中使用
break
语句可以退出循环。鉴于此,我的问题是:我必须使用
break
语句才能退出循环吗?或者我可以用return
语句代替它吗?考虑到这个问题,如果我的代码像下面这样写,是否更好呢?
request = "simple string"
ignore = (
# Tuple that contains regex's to ignore
)
for (i, regex) in enumerate(ignore):
if re.search(regex, request):
print("Found regex {0}.".format(i))
break
return
语句将不会退出函数。例如,您可以将return
语句放入try
块中,并捕获异常而不离开函数。因此,它并不总是立即退出函数。 - Peter Nimrootpass
它或者对其进行任何想要的操作 - 比如try: return 1 / 0; except: pass
。此外,我不会完全称它为边缘情况,我曾在一些低级项目中多次看到这种技术非常有用。 - Peter Nimrootreturn
可行时使用break
的情况。当然,你可以通过异常来改变流程,然后用try
捕获。你可以在except处理程序中使用return
,并在finally
处理程序中引发异常以进行更奇怪的交互,但这些都与本文无关。 - Martijn Pieters