簡體   English   中英

為什么我的代碼直接跳到其他地方?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM