如何退出python中的多个循环

时间:2016-01-10 11:15:23

标签: python-2.7

在我的下面的代码中,我一直收到一个错误,我不知道如何修复它。 见代码:

def WordSelector():
    global pattern
    words = [location]
    corpus = " ".join(words)
    sentences1 = re.split(r'\.', corpus)
    name17 = [name66, name666, name67, name68, name69, name612]
    k1 = iter(name17)
    keyword = next(k1)
    pattern1 = keyword

    class LocalBreak(Exception):
        pass
        try:
            for pattern1 in name17:
                for sentence in sentences1:
                    if pattern1 in sentence:
                        print 'code'
                        raise LocalBreak()
        except LocalBreak:
            pass


WordSelector()

我一直收到这个错误:

"C:\Python27\synonyms3.py", line 72, in LocalBreak
    except LocalBreak:
NameError: free variable 'LocalBreak' referenced before assignment in enclosing scope

1 个答案:

答案 0 :(得分:1)

整个try/except块在LocalBreak体内定义,您无法引用类本身(因为它的定义尚未完成)。

只需正确缩进代码并在函数体中循环,而不是在自定义异常定义范围内。

def WordSelector():
    global pattern
    words = [location]
    corpus = " ".join(words)
    sentences1 = re.split(r'\.', corpus)
    name17 = [name66, name666, name67, name68, name69, name612]
    k1 = iter(name17)
    keyword = next(k1)
    pattern1 = keyword

    class LocalBreak(Exception):
        pass

    try:
        for pattern1 in name17:
            for sentence in sentences1:
                if pattern1 in sentence:
                    print 'code'
                    raise LocalBreak()
    except LocalBreak:
        pass


WordSelector()