我不明白为什么以下陈述不起作用。
randomKey = random.choice(list(topic.keys()))
randomValue = random.choice(topic[randomKey])
current = "-" * len(randomValue)
while current != randomValue:
(statements)
else:
(statements)
但是,如果我将第一行更改为
while current == randomValue:
'else' 之后的语句正确执行。否则,'else'后面的语句不会执行。知道为什么会导致这种奇怪的行为吗?完整的代码已被排除,因为它将贯穿整个页面。
它是 Python 语法的一部分。从文档 http://docs.python.org/2/reference/compound_stmts.html#the-while-statement:
This [a while
语句]重复测试表达式,如果为真,则执行第一组;如果表达式为 false(这可能是第一次测试),则else
子句(如果存在)将被执行并终止循环。
因此,在第一种情况下,while 条件必定永远不会计算为 false,而在第二种情况下,它最终会计算为 false。请注意,显式地跳出循环将not执行 else 子句。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)