原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:http://blog.csdn.net/humanking7/article/details/43792425
在看Python的文档的时候看到了for
和while
语句和C语言
中有一个最大的区别—可以有一个可选的else语句
。这个语句的执行触发机制让我不大明白,通过代码测试才了解了什么情况下触发else语句
。“凡存在,皆合理”,Python的设计者肯定是有他的目的,现在咱们来探究一番。
以for语句
为例,开发环境Python3.4
。
循环中else的存在是为了让代码更清晰,更加简洁。下面举个例子给大家看看,分别用 传统的写法 和 带else的写法 实现作用相同的代码
myList = [1,2,3,4,5,6,7]
isFound = False
for item in myList:
if item == 4:
isFound = True
print('List 有 4')
break
if not isFound:
print('List 没有 4')
myList = [1,2,3,4,5,6,7]
for item in myList:
if item == 4:
isFound = True
print('List 有 4')
break
else:
print('List 没有 4')
对比两处代码,不难发现相较于传统的for循环
写法,带else语句
的写法更加的简洁,而且少了isFound
这个变量以及跳出循环后的这个if判断语句
。
for … else结构
下
for
里面的语句和普通的(没有else的for语句
)没有区别;else
中的语句会在循环正常执行完后执行;for
中语句通过break
跳出而中断时,不会执行else
。最后总结一句,for ... else结构
一般要和break
一起使用,才能体现这个结构的强大之处(至少我是这么觉得的,不知还有什么其他情况,希望网友不吝赐教)。
while ... else结构
也符合上述条件。
continue
和break
语句其实就和C语言的用法是一样的,只是在for ... else结构
结构中
for
中语句通过break
跳出而中断时,不会再执行else
中的内容;continue语句
和寻常语句无异,只要不是不通过break
,光有continue
会进入else语句
。代码如下:
for x in range(1, 4):
print(x, 'for语句')
continue
print(x, 'continue语句后')
else:
print(x, 'else语句')
执行结果:
1 for语句
2 for语句
3 for语句
3 else语句
代码如下:
for x in range(1, 4):
print(x, 'for语句')
break
print(x, 'break语句后')
else:
print(x, 'else语句')
执行结果:
1 for语句