一周stackoverflow热门问题选登:如何正确的理解python for循环中的else用法?
2016-06-13 09:38
609 查看
提问:如何正确的理解python
for循环中的else用法?
许多Python程序员可能不知道while和for循环的语法中包括一个可选的else语句,如:
程序中的else语句是便于处理某种行为,在循环的正常终止时执行:即以return或者break方式退出循环将会忽略else语句;存在continue语句将会执行else。我看了一遍又一遍也只知晓这个,但我一直记不起else在何时会被执行。
是永远被执行?顾名思义在循环失效时?在正常结束时?碰到return语句退出循环时?
在关键词选择上的不确定性让我很懊恼,我发现else使用上不确定性很大。我的问题不是“这个关键词会被用的目的”,而是怎么把else的语法弄清楚并且记住它。
我确定这能引起相当数量的讨论,而且我能想象这个关键词选择与try else的语法使用上具有一致性。也许基于这个原因选择else能够辨别它的功能,并且更容易记忆。
投票最多的回答:
if语法中执行else语句是因为条件为假。同理,while循环执行else语句是因为其条件为假。
这些规则符合你所描述的行为:
正常执行:while重复执行直到条件变为假,所以循环执行完成后执行else。
当你执行break语句时,你会退出循环但循环条件并没有变为假,所以你不会执行else语句。
当你执行continue时,你再次评估这个条件,并且通常会暂停本次循环执行下一个循环。所以循环条件为真时会一直执行循环,但是如果变为假则会执行else。
其他方式退出循环,例如return,循环条件没有改变所以不会执行else语句。
for循环行为方式也是这样。如果迭代器有更多的项目,则只考虑条件为真
的情况。
有兴趣的话,可以关注我的微信公众号:学点编程吧
for循环中的else用法?
许多Python程序员可能不知道while和for循环的语法中包括一个可选的else语句,如:
for val in iterable: do_something(val) else: clean_up()
程序中的else语句是便于处理某种行为,在循环的正常终止时执行:即以return或者break方式退出循环将会忽略else语句;存在continue语句将会执行else。我看了一遍又一遍也只知晓这个,但我一直记不起else在何时会被执行。
是永远被执行?顾名思义在循环失效时?在正常结束时?碰到return语句退出循环时?
在关键词选择上的不确定性让我很懊恼,我发现else使用上不确定性很大。我的问题不是“这个关键词会被用的目的”,而是怎么把else的语法弄清楚并且记住它。
我确定这能引起相当数量的讨论,而且我能想象这个关键词选择与try else的语法使用上具有一致性。也许基于这个原因选择else能够辨别它的功能,并且更容易记忆。
投票最多的回答:
if语法中执行else语句是因为条件为假。同理,while循环执行else语句是因为其条件为假。
这些规则符合你所描述的行为:
正常执行:while重复执行直到条件变为假,所以循环执行完成后执行else。
当你执行break语句时,你会退出循环但循环条件并没有变为假,所以你不会执行else语句。
当你执行continue时,你再次评估这个条件,并且通常会暂停本次循环执行下一个循环。所以循环条件为真时会一直执行循环,但是如果变为假则会执行else。
其他方式退出循环,例如return,循环条件没有改变所以不会执行else语句。
for循环行为方式也是这样。如果迭代器有更多的项目,则只考虑条件为真
的情况。
有兴趣的话,可以关注我的微信公众号:学点编程吧
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法