一周stackoverflow热门问题选登:如何正确的理解python for循环中的else用法?
来源:互联网 发布:sql case null 编辑:程序博客网 时间:2024/06/11 22:48
提问:如何正确的理解python 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循环行为方式也是这样。如果迭代器有更多的项目,则只考虑条件为真
的情况。
有兴趣的话,可以关注我的微信公众号:学点编程吧
- 一周stackoverflow热门问题选登:如何正确的理解python for循环中的else用法?
- 一周stackoverflow热门问题选登:如何用Python for循环实现列表中数据两两循环打印?
- 一周stackoverflow热门问题选登:使用过时的C编译器存在安全隐患吗?
- 一周stackoverflow热门问题选登:“==” 和 “!=” 相互依存吗?
- Python 中的for-else用法
- Python中循环语句中的else用法
- python for else 循环
- python 循环中的else
- python中的for...else...
- Python for循环和else
- python中的for...else的使用方法
- python中的for循环问题
- Python中的else的特殊用法
- Python循环中的else语句
- [python]循环中的else子句
- Python 中的循环与 else
- Python for, while循环后面加else的作用
- Python中带else子句的for循环执行过程
- Paint(画笔)类的使用
- 【Spring4揭秘 BeanFactory】修改BeanFactory-BeanFactoryPostProcessor
- iOS--UIAlertView与UIAlertController和UIAlertAction
- C语言中关于sizeof和strlen的区别
- (第22讲)java数组的一些编程题
- 一周stackoverflow热门问题选登:如何正确的理解python for循环中的else用法?
- POJ_1273_Drainage Ditches(USACO 93)_最大流
- Eclipse安装Freemarker插件
- TCP连接过程详解
- SparkSQL On Yarn with Hive,操作和访问Hive表
- ORCLE建表、增删改查
- xcopy拷贝所有文件
- hihocoder #1014 trie树
- PHP 将json的stdClass Object转成数组array 方法二