诸神之战遊戲:[Python]循环语句中的 else 子句 - 赖勇浩的编程私伙局 - CSDN博客

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 01:39:13

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

  [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 子句 - 赖勇浩的编程私伙局 - CSDN博客 简评游戏人工智能相关的中文书(上) - 赖勇浩的编程私伙局 - CSDN博客 简评游戏人工智能相关的中文书(下) - 赖勇浩的编程私伙局 - CSDN博客 Python学习 Tip摘录 - zhou02607的专栏 - CSDN博客 Python操作redis - chenggong2dm的专栏 - CSDN博客 USB有关的编程 - sanshao27的专栏 - CSDN博客 网页编程常用技巧 - happycyp的专栏 - CSDN博客 [Python]python编程 FAQ Python模块学习 ---- struct 数据格式转换 - 成长的点滴,记录与分享 - CSDN博客 Python 中的算法和编程方法(使用状态机) 使用记号的cvCopy - 一个爱编程的人专栏 - CSDN博客 ASP.NET编程中的嵌套If语句 Linux C 编程 实现彩色文字输出 - wesleyluo的专栏 - CSDN博客 基于Hadoop的Map reduce编程(一) - 在水一方 - CSDN博客 项目管理中的心态对抗 - wotiger的专栏 - CSDN博客 wxGlade - Python的可视化编程工具 - 开源中国社区 六本学习Python语言编程的免费电子书 [Python]一道笔试题,python的web编程,寻求高手帮忙 Sql Server删除主键和重建主键 - 编程 - CSDN博客 小白学Linux之内核模块编程 - tiger-john - CSDN博客 游戏程序员成长 - 痞子龙3D编程 - CSDN博客 风雨20年:我所积累的20条编程经验 - Java 是用来喝的 - CSDN博客 13种最为荒谬的编程语言 - CSDN.NET - CSDN软件研发频道 IT公司中最流行的10种编程语言 - CSDN.NET - CSDN软件研发频道