Python 从for循环中断
这是我的密码:Python 从for循环中断,python,breakpoints,Python,Breakpoints,这是我的密码: def detLoser(frag, a): word = frag + a if word in wordlist: lost = True else: for words in wordlist: if words[:len(word) == word: return #I want this to break out. else:
def detLoser(frag, a):
word = frag + a
if word in wordlist:
lost = True
else:
for words in wordlist:
if words[:len(word) == word:
return #I want this to break out.
else:
lost = True
在我有回击的地方,我试着把回击和破发都放进去,但都给了我错误。两者都给我以下错误:语法错误:无效语法。有什么想法吗?处理此问题的最佳方法是什么?您从列表切片中省略了
]
。但是代码到底想要实现什么呢
foo[ : len( foo ) ] == foo
永远
我假设这不是完整的代码——如果是的话,wordlist
在哪里定义?(这是一个列表吗?--测试集合的包含性要快得多。)
您可能可以使用any
或all
重写for循环,例如(您应该使用set而不是wordlist的列表)
SyntaxError:无效语法--与break相同。
return
和break
都可以工作,因为它是函数中的循环。请提供您收到的实际错误消息。此代码应该做什么?您需要退回丢失的吗lost
在任何地方都不会设置为False
。洛特:查两条评论。格尼布勒:后来我重写了它以归还丢失的东西。这是一个代码片段。它假设玩家在设置为true之前没有失败。代码会评估松动条件。是的,wordlist是一个列表。您对集合的测试包含是什么意思?python集合是一个哈希表,所以查找可能不像O(logn)那么慢@unbeli:true。我在想二进制搜索。。。是否应摊销O(1)I薄?
def detLoser(frag, a):
word = frag + a
if word in wordlist:
lost = True
else:
for words in wordlist:
if word.startswith(words):
return #I want this to break out.
else:
lost = True
def detLoser(frag, a):
word = frag + a
return word in wordlist or any(w.startswith(word) for w in wordlist)