为什么我的代码会直接跳到其他地方?

时间:2015-10-21 05:24:09

标签: python

我遇到一个python for循环,其中包含re.match跳过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'

我该如何纠正?

1 个答案:

答案 0 :(得分:4)

目前发生的是你的第一行没有匹配,所以循环在第一次迭代中进入else块,并直接返回none

相反,您可以执行以下操作,在for循环结束后返回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'