Python 2.7 如何在python中退出多个循环
在我下面的代码中,我不断得到一个错误,我无法告诉如何修复它。 见代码:Python 2.7 如何在python中退出多个循环,python-2.7,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(name
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
整个
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()
正确的代码parenthess@Martin,你是说打印的吗?我已经在网上运行了代码,它很好并且可以工作,但是当我在源代码中使用它时,我得到了一个重新打印的结果,似乎break或LocalBreak并不能阻止它。让我再检查一遍我的线路。在单词部分,我放了一段来自sqilte Db的文字。在打印部分,这是我所拥有的:打印“”。如果word_标记化(j)]中的模式1,则枚举(句子1)中的m,j的连接([“”.join([sentences1[m-1],j]))