[英]Why is my code skipping straight to else?
我在使用包含re.match
的python for
循環時遇到了麻煩,跳過了if
並直接跳轉到else
,所以循環總是返回"none"
。 該if
,如果我沒有別的做會奏效。
這是代碼:
def searchBegin (searchChar):
regex = searchChar
regex += '.{2,7}'
pattern = re.compile(regex)
for (offset, line) in enumerate(lines):
if re.match(pattern, line):
return line
break
else:
return 'none'
我該如何糾正?
當前正在發生的事情是您的第一行沒有匹配項,因此循環在第一次迭代中進入else塊,而none
直接返回。
相反,您可以執行以下操作,在for循環結束后none
返回none
值,否則僅打印no match
:
def searchBegin (searchChar):
regex = searchChar
regex += '.{2,7}'
pattern = re.compile(regex)
for (offset, line) in enumerate(lines):
if re.match(pattern, line):
return line
break
else:
print "no match"
return 'none'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.