此Python程序中else:
的行是否正确/必要?
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
答案 0 :(得分:6)
循环语句可能有一个else子句;当循环通过列表耗尽(使用for)或条件变为false(使用while)终止时执行它,但是当循环被break语句终止时不执行
所以是的,在你的例子中它是正确的。虽然我从来都不喜欢它,但是在循环上使用else子句会使代码混乱,我宁愿使用布尔标志来实现相同的效果。恕我直言else
应仅用于条件。
答案 1 :(得分:3)
from random import randrange
for n in range(10):
r = randrange(0,10)
if n=r: continue # there should be ==
if n>r: break
print n # should be "\n" ?
else:
print "wow, you are lucky!\n" # Yes, you are! Your python interpreter can make miracles :). Try to run me.append(SexyChick(10)) and let's see what happens!
for...else
构造实际上是有效的。如果循环尚未被else
终止,则执行break
分支。看here。