2015-10-21 66 views
1

我在python for循环中遇到了问题,跳过if并跳到else,因此循环总是返回"none",它包含re.matchif将工作,如果我没有别的。为什么我的代码直接跳到其他地方?

下面的代码:

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' 

我如何纠正呢?

回答

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' 
相关问题