[Python]循环语句中的 else 子句

有其它编程语言经验的程序员接触到 Python 时最讶异的莫过于无所不在的 else,不仅分枝语句有,而且循环语句也有,甚至连异常处理也有。但现在我们来看看循环语句中的 else,看看它们的语法:
while_stmt ::=
"while" expression ":" suite
["else" ":" suite]
for_stmt ::=
"for" target_list "in" expression_list
":" suite
["else" ":" suite]
要谈 else 分句,必须要知道 Python 从 C 语言中借来了语义相同的 break 和 continue 语句,因为 else 分句提供了隐含的对循环是否由 break 语句引发循环结束的判断。先来看一个没有应用 else 子句的例子:
>>> def print_prime(n):
...for i in xrange(2, n):
...found = True
...for j in xrange(2, i):
...if i % j == 0:
...found = False
...break
...if found:
...print '%d is a prime number'%i
这是一个查找素数的简单实现,可以看到我们借助了一个标志量 found 来判断是循环结束是不是由 break 语句引起的,如果对 else 善加利用,代码可以简洁得多:
>>> def print_prime2(n):
...for i in xrange(2, n):
...for j in xrange(2, i):
...if i % j == 0:
...break
...else:
...print '%d is a prime number'%i
当循环“自然”终结(循环条件为假)时 else 从句会被执行一次,而当循环是由 break 语句中断时,else 从句就不被执行。
与 for  语句相似,while 语句的else 子句的语意是一样的。else 块在循环正常结束和循环条件不成立时执行。
与 C/C++ 等较为“老土”的语言相比,else 子句使程序员的生产力、和代码的可读性都得到了提高。尽管如此,我见过的代码中使用 else 子句的情况并不多,大概是因为大家都习惯了 C 式的标志量解决方案,我建议大家多使用 else。
最后八卦一下,如果在 python 中想直接退出多重循环,你应该使用异常,python 不提供 goto。关于异常,下次我们再来聊聊。

[Python]循环语句中的 else 子句相关推荐

  1. Python循环语句中的else

    Python循环语句中的else 简介 流程图 作用 简介 在while和for循环语句中都可以跟上else语句,但是与if-else判断不同.在这里,else是循环语句正常结束时才能执行的代码段,如 ...

  2. python循环语句中的乘法_python循环语句详细讲解

    想必大家都知道python循环语句吧,可以python循环语句有多种,比如for循环.while循环.if.else等等, 我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下: ...

  3. python里else中文意思_Python循环语句中else的用法总结

    前言 本文讨论Python的for-else和while-else等语法,这些是Python中最不常用.最为误解的语法特性之一. Python中的for.while等循环都有一个可选的else分支(类 ...

  4. python循环语句continue_Python循环控制语句中的break和continue语句

    在之前的文章中,介绍了Python中的循环控制语句 while和 for.在循环执行过程中,我们可以使用 break 和 continue 语句来改变循环的流程. 通常情况下,while 循环判断执行 ...

  5. python循环语句-python语句中Python循环语句(附代码)

    python语句多如牛毛,对于很多初学者来说,不知道该如何下手.今天本文将着重讲述python语句中for语句和while语句.都知道这2种语句都属于循环语句,for语句属于遍历循环,while语句属 ...

  6. python循环语句打印三角形_如何使用python语言中的语句遍历循环生成三角形

    在python语言中,除了使用if语句,还可以使用while循环语句,利用多层循环生成不同的图形,如果在特殊位置中断,可以创建不同的图形.下面利用实例说明如何生成三角形,操作如下: 工具/原料 pyc ...

  7. python中for循环语句格式_CSC108 | Python 循环语句教程

    原标题:CSC108 | Python 循环语句教程 Python 循环语句教程 U of T ADA For循环语句 While循环语句 循环语句指的是重复执行某段程序代码,直到满足特定条件为止. ...

  8. python什么语句提前结束循环_在循环语句中,break语句的作用是提前结束循环。

    [单选题]__________ sind Sie? Ich bin Studentin. [填空题]_______ Internet [单选题]()函数可以返回x的整数部分? [单选题]_______ ...

  9. python什么语句提前结束循环_在循环语句中,__________语句的作用是提前结束本层循环。...

    [判断题]列表对象的 extend( )方法属于原地操作,调用前后列表对象的地址不变. [单选题]Python 中,for 和 while 可以有 else 语句?( ) [判断题]对于大量列表的连接 ...

最新文章

  1. ZBar与ZXing使用后感觉
  2. .NET Framework/.NET Compact Framework/.NET Micro Framework功能集比较
  3. xen挂载虚拟机分区删除日志 破解密码无所不能
  4. asp.net分页控件使用详解【附实例下载】
  5. 文件上传与下载问题记录
  6. request用法_3分钟短文:说说Laravel页面会话之间的数据保存Session用法
  7. python物理引擎模拟三体_一个物理引擎能不能模拟少量粒子之间的力?
  8. spring注册bean
  9. Android 小項目之--猜名字有獎!RadionButton 和RadionGroup應用(附源碼)
  10. JavaScript继承方式详解
  11. mysql复制表结构创建新表
  12. [ZT]毁人不倦的应试教育(2)
  13. UI设计——以网易云音乐为例
  14. python随机密码生成以整数17为随机数种子_简述pythonpytorch 随机种子的实现
  15. WEB应用防火墙(WAF启明设备)
  16. 痔疮最佳治疗方法 十人九痔 不必害羞
  17. python矩阵点乘和叉乘_NumPy点积:取向量积的乘积(而不是求和)
  18. 一位想学习编程拯救他人的初中生
  19. PMP证书对非项目管理者有意义吗?
  20. 以作回顾、以作借鉴、以作鼓励

热门文章

  1. 项目之Qt实现访客系统
  2. 路由 —— 源站路由 + 策略路由
  3. 确保 Web Service 安全
  4. 五金配件行业ERP解决方案
  5. 微信封号怎么解除?这些原因和解决办法你得知道
  6. mysql自增类型_Mysql自增字段
  7. 自动登录过BSO脚本 ( by quqi99 )
  8. Web技术实现仿苹果手机计算器
  9. Visual studio code 汉化插件
  10. 全国工商联观摩 万企兴万村-万祥军:对话何华先国稻种芯三产融合