python的空else讨论
2013-10-17 16:52
134 查看
遇到了一个空的else,我印象中c是不允许的,觉得蛮有意思。
贴一段代码,我总结的else是这样的,关键问题在break。我们常规理解这个break打破的是内层for循环,外层应该会继续执行,但是不然,因为break了,所以直接后面的都不执行了,也就是else也会观察这个break的动作,这应该跟for的返回值有关。去掉break就会发现下面的else没有用,“hello world”会被打印10次。也就是说只有上面的break不工作的时候else内部才可能工作。
这一个特性可以增加控制流的种类,具体用途,可以用来对指定序列进行两种处理,第二种作为第一种的备用,当第一种方法失效可以用第二种,就想到这么多。
1 a = {} 2 a[0] = {'m':1} 3 a[1] = {'m':2} 4 a[2] = {'m':3} 5 for b in range(10): 6 for c in a.itervalues(): 7 print c['m'] 8 if c['m'] >= 1: 9 c['m'] -= 1 10 break 11 12 else: 13 print 'hello world'
贴一段代码,我总结的else是这样的,关键问题在break。我们常规理解这个break打破的是内层for循环,外层应该会继续执行,但是不然,因为break了,所以直接后面的都不执行了,也就是else也会观察这个break的动作,这应该跟for的返回值有关。去掉break就会发现下面的else没有用,“hello world”会被打印10次。也就是说只有上面的break不工作的时候else内部才可能工作。
这一个特性可以增加控制流的种类,具体用途,可以用来对指定序列进行两种处理,第二种作为第一种的备用,当第一种方法失效可以用第二种,就想到这么多。
相关文章推荐
- python中的异常处理:try...except...else...finally语句
- Python中else的用法总结
- Python中Remove函数的讨论
- python中的try/except/else/finally语句
- python if else while for
- Python 自学讨论
- Python 列表生成试中的if,if else
- python中的try/except/else/finally语句--自我小结
- Python的 if .else.elif语句详解
- Python中else语句整理
- python的list和dict是否是线程安全的讨论
- python基础学习02(if...else...elif)
- 5.Python - if、if else 、if else
- 纠错一个Python程序引发的讨论
- python try except else finally
- python for else
- python知识点讨论
- 2.8 python中的if...elif...else语句 [python入门教程]
- python3 for 循环中的 else 语句
- python 循环中的else