Python中的else是基础的语句,它的两种使用形式是:
- if condition:
- doSomeThings
- else:
- doAnthorThings
以及
- if condition1:
- do1
- elif condition2:
- do2
- else:
- doOtherThings
这两个用法理解起来没有问题。下面要看的是for,while循环和try异常处理语句中的else的用法。
一、for,while循环中的else
for,while循环中,else用于循环正常结束,且循环体中没有break、return和异常抛出,则执行else语句块中的内容。 例如,我们判断列表ls中是否全是奇数。普通情况下,需要引入一个标志变量allOdd,指示所有变量都是奇数,有偶数出现则将此变量设为False。写法如下:
- ls = [1, 3, 5, 7, 9]
- allOdd = True
- for i in ls:
- if i % 2 == 0:
- allOdd = False
- break
- if allOdd:
- print('list ls %r constructed by only odd number' % ls)
- else:
- print('list ls %r ** is\'t ** constructed by only odd number' % ls)
利用else指示循环正常结束的功能,采用for循环或者while循环加else的写法如下:
- for i in ls:
- if i %2 == 0:
- print('list ls %r ** is\'t ** constructed by only odd number' % ls)
- break
- else:
- print('list ls %r constructed by only odd number' % ls)
可见,for循环使用else语句之后,节省了指示性变量allOdd,以及相应的处理语句。整个程序语义上更简洁、逻辑上更顺畅。
二、try异常处理语句中的else
try except异常捕获处理语句中,else定义用于没有异常出现时执行的部分。 例如,当我们处理有可能导致异常的计算时,else语句定义的部分,可以确保没有异常发生,得到了正确计算结果。例子是计算简单的除法。普通写法:
- try:
- result = a/b
- print(result)
- except TypeError:
- print('输入数字')
- except ZeroDivisionError:
- print('被除数不能为零')
采用else语句时的写法:
- try:
- result = a/b
- except TypeError:
- print('输入数字')
- except ZeroDivisionError:
- print('被除数不能为零')
- else:
- print('计算结果%r'%result)
也就是说,try except else finally分别对应如下关系:
else语句在try except句法中最主要的功能,是明确指出了没有异常出现时才执行的语句块。与出现异常,或者出现异常并且处理了这两种情况是分开的。这个语法块是在没有异常出现时执行的,保证了环境的正确性。
三、简单总结
本月DataWorks产品月刊为您带来 产品活动 1.参与阿里云DataWorks问卷调研 (Aliyu...
人脸识别 是目前商业应用最成熟、最广泛的人工智能技术之一,成为开发者、企业接...
【51CTO.com快译】 数据分析是对数据进行判断、细化、更改和建模的过程,目的是...
大数据市场如今正在呈爆炸式增长。根据调研机构Markets and Markets公司的调查,...
阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、 百度、滴滴等一线互联网公司...
【51CTO.com快译】不知道您是否听说过软件架构师最讨厌意大利面这个梗?它是指软...
案例背景 永安稻香小镇的体验式数字农业基地是余杭街道依托“阿里以西10分钟”的...
操作场景 您可以删除不需要的私有镜像。 删除私有镜像后,将无法找回,请谨慎操...
大家在开发Python的过程中,一定会遇到很多反斜杠的问题,很多人被反斜杠的数量...
公司介绍 长沙营智信息技术有限公司旗下易撰网,2017年10月份上线以来,基于数据...