假设有以下代码:ui
for i in range(10): if i == 5: print 'found it! i = %s' % i else: print 'not found it ...'
你指望的结果是,当找到5时打印出:spa
found it! i = 5
实际上打印出来的结果为:code
found it! i = 5 not found it ...
显然这不是咱们指望的结果。
其实当迭代的对象迭代完并为空时,位于else的子句将执行,而若是在for循环中含有break时则直接终止循环,并不会执行else子句。
因此正确的写法应该为:
for i in range(10): if i == 5: print 'found it! i = %s' % i break else: print 'not found it ...'