0

可能重复:
奇怪的while语句行为?

鉴于以下情况,我如何正确实现列表理解,退出循环并在“else”之后运行语句?我曾尝试扫描“-”字符,但它不起作用。

试过:

while(current != randomValue)

现在尝试:

randomKey = random.choice(list(topic.keys()))

randomValue = random.choice(topic[randomKey])

current = "-" * len(randomValue)  

while (i for i in range (0, len(current)) if i != "-"):
    (statements)
else:
    (statements)
4

2 回答 2

0

您的测试没有意义——生成器上的 Bool 始终是True

>>> a = (i for i in range(10))
>>> bool(a)
True

i永远不会 == '-'因为你正在循环range。我不太确定您在这里尝试什么,但我们真的无法帮助您解决这个问题,除非我们看到您可以设法将您的实际代码简化为最重要的部分。(谁知道,通过这样做,您可能会自己发现问题)

于 2012-11-03T19:33:07.913 回答
0

而不是列表理解,努力使while语句为假等等......我这样做了,它在某种程度上起作用:

while ("-" in current ):
于 2012-11-03T19:39:52.233 回答