位置: 编程技术 - 正文

Python 中的 else详解(pythonfor else)

发布时间:2024-02-27

推荐整理分享Python 中的 else详解(pythonfor else),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:else语句python,else语句python,python中else的用法,pythonfor else,python里的else,python中elseif,python中elseif,python中elseif,内容如对您有帮助,希望把文章链接给更多的朋友!

我们都知道 Python 中else的基本用法是在条件控制语句中的 if...elif...else...,但是 else 还有两个其它的用途,一是用于循环的结尾,另一个是用在错误处理的 try 中。这原本是 Python 的标准语法,但由于和大部分其它编程语言的习惯不太一样,致使人们有意或无意地忽略了这些用法。另外,对于这些用法是否符合 0× The Zen of Python 的原则以及该不该广泛使用也存在很多争议。例如在我看到的两本书里(Effective Python VS Write Idiomatic Python),两位作者就分别对其持有截然不同的态度。

循环中的 else

跟在循环后面的 else 语句只有在当循环内没出现 break,也就是正常循环完成时才会执行。首先我们来看一个插入排序法的例子:

在这个例子中,对已排序的 _sorted 元素逐个与 i 进行比较,若 i 比已排序的所有元素都大,则只能排在已排序列表的最后。这时我们就需要一个额外的状态变量 inserted 来标记完成遍历循环还是中途被 break,在这种情况下,我们可以用 else 来取代这一状态变量:

我认为这是一个非常酷的做法!不过要注意的是,除了 break 可以触发后面的 else 语句,没有循环的时候也会:

Python 中的 else详解(pythonfor else)

错误捕捉中的 else

try...except...else...finally 流程控制语法用于捕捉可能出现的异常并进行相应的处理,其中 except 用于捕捉 try 语句中出现的错误;而 else 则用于处理没有出现错误的情况;finally 负责 try 语句的”善后工作“ ,无论如何都会执行。可以通过一个简单的例子来展示:

当然,也可以用状态变量的做法来替代 else:

总结

有人觉得 else 的这些用法违反直觉或者是 implicit 而非 explicit,不值得提倡。但我觉得这种”判决“需要依赖具体的应用场景以及我们对 Python 的理解,并非一定要对新人友好的语法才算是 explicit 的。当然也不推荐在所有地方都使用这个语法,for/while...else 最大的缺点在于 else 是需要与 for/file 对齐的,如果是多层嵌套或者循环体太长的情况,就非常不适合用 else(回忆一下游标卡尺的梗就知道了:P)。只有在一些简短的循环控制语句中,我们通过 else 摆脱一些累赘的状态变量,这才是最 Pythonic 的应用场景!

Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法 本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL、Oracle、SQLServer数据库。其中包括以下几个软件的安装

Python爬虫辅助利器PyQuery模块的安装使用攻略 Windows下的安装:下载地址:

Python简单实现enum功能的方法 本文实例讲述了Python简单实现enum功能的方法。分享给大家供大家参考,具体如下:classEnumerate(object):def__init__(self,names):fornumber,nameinenumerate(names.split()):set

标签: pythonfor else

本文链接地址:https://www.jiuchutong.com/biancheng/386103.html 转载请保留说明!

上一篇:Services 翻译第二集(services的翻译)

下一篇:Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法(linux pythonide)

  • 业务宣传费和广告费的扣除标准
  • 个体工商户网上注销
  • 发票旁边的孔能撕吗
  • 通用定额发票真伪查询系统
  • 怎样确定是否计入固定资产清理科目
  • 应收账款税收风险有哪些
  • 产品成本核算需要经过哪些程序
  • 劳务费做账是否需要发票
  • 收到进口增值税发票可以直接抵扣吗
  • 政策性搬迁资产损失情况怎么写
  • 员工工资怎么计算公式
  • 关联方费用分摊是否要调账
  • 公司成立后有哪些开支
  • 年底结账会计分录一定要做吗
  • 个人名义帮公司贷款
  • 出口业务增值税免抵税额
  • 劳务派遣公司一般纳税人税率是多少
  • 的税收分类编码
  • 个体户生产经营所得税减半征收
  • 小规模纳税人免征增值税怎么记账
  • 生产企业出租设备如何开票
  • 员工福利费用会计怎么做
  • 红字发票是否需要盖发票章
  • 预收销货款属于负债吗
  • 华为鸿蒙系统开发平台
  • 矿山机械设备租赁有限公司
  • svchost进程很多怎么办
  • centos apache配置文件
  • 拍卖本人文字作品原稿
  • 增值税价外费用如何开票
  • 成立公司必要性
  • aspnet_admin.exe进程是安全的吗 aspnet_admin进程信息查询
  • 秋分日的时间意义庆祝方式
  • spring 异常
  • 代订机票发票可以入账吗
  • php生成颜色面板
  • 违约金开什么票据
  • 转让费交什么税
  • 解决掉发的有效方法
  • 前端项目性能优势怎么写
  • 微信小程序下拉菜单怎么做
  • reset=target
  • 工会经费计算公式的例子
  • 小规模企业利息收入要交税吗
  • 报关单保费率怎么填
  • 科目余额表科目
  • 关联方交易的税收问题
  • 月末结转的各类凭证无需注意先后顺序
  • 如何查看员工社保
  • 返还垫付征地款
  • 自产自销免税农产品需要缴纳印花税吗
  • 销售商品结转成本的记账凭证
  • 货款已付,货未收到分录
  • 银行固定资产有哪些
  • 职工福利费核算哪些内容
  • mysql中的字符串函数
  • centos7阿里云yum源
  • 简述linux几种主流发行版本及其特点
  • centos安装dig
  • windowmsgserver32是什么
  • win10一直显示正在配置更新
  • win8系统桌面图标
  • hp电脑系统win8系统
  • win7系统安装office2019
  • unity怎么念
  • Ubuntu14.04 GLUT的安装
  • jquery移动节点的方法
  • unity3ds
  • JavaScript创建数量n由用户决定的数组
  • js复制数组的方法
  • linux守护进程管理
  • unity gui
  • jquery实现全选全不选
  • jquery右键弹出菜单
  • javascript程序设计教程
  • 电子税务局如何下载财务报表
  • 单张发票开票限额?
  • 手机陌陌卸载还有记录吗
  • 东莞医保缴费凭证怎么下载
  • 广东佛山税务局人工电话是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号