这个Python程序中的`else:`是正确/必要的吗?

qaz*_*wsx 3 python if-statement

else:这个Python程序中是否正确/必要?

from random import randrange
for n in range(10):
    r = randrange(0,10) # get random int in [0,10)
    if n==r: continue # skip iteration if n=r
    if n>r: break # exit the loop if n>r
    print n
else:
    print "wow, you are lucky!\n"
if n<9:
    print "better luck next time\n
Run Code Online (Sandbox Code Playgroud)

Ósc*_*pez 6

文档:

循环语句可能有一个else子句; 当循环通过列表耗尽(with for)或条件变为false(with while)时终止,但是当循环被break语句终止时不执行

所以是的,在你的例子中它是正确的.虽然我从来都不喜欢它,但是在循环上使用else子句会使代码混乱,我宁愿使用布尔标志来实现相同的效果.恕我直言else应该只用于条件.