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)