行为奇怪

时间:2012-11-03 19:31:00

标签: python python-3.x

  

可能重复:
  strange while statement behaviour?

鉴于以下内容,我如何正确实现列表理解,退出循环&在' 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)

2 个答案:

答案 0 :(得分:0)

你的测试没有意义 - 生成器上的Bool总是True

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

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

答案 1 :(得分:0)

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

while ("-" in current ):