位置: 编程技术 - 正文

Python 中的 else详解(pythonfor else)

编辑:rootadmin

推荐整理分享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)

  • 景点门票可以做账吗
  • 附加税减免如何申报
  • 专票当成普票入账怎么调整
  • 扣缴个人所得税报告表
  • 非正常损失进项转出额如何计算
  • 无形资产土地需要折旧吗
  • 营业收入包括其收入吗
  • 低于成本价销售的税务风险
  • 员工宿舍可以扣除住房租金支出吗
  • 英雄联盟电脑软件图片
  • 软件开发并销售怎么做
  • 个人社保和公积金扣款公司七个人三怎么样
  • 企业之间的违约金进什么科目
  • chrom无法访问
  • tp-link无线路由器怎么样
  • 营改增后劳务发票税率
  • asldrsrv.exe
  • vue项目中使用opencv
  • 什么情况下计提信用减值损失
  • 个人所得税的征收模式为()A分类征收B综合征收C
  • 爱德华多·阿涅利
  • psd格式文档
  • php自定义header
  • 杭州西湖古风
  • 微信小程序的视频怎么下载
  • 其他收益在资产负债表哪点
  • vue预览word加水印
  • Yii2中使用asset压缩js,css文件的方法
  • _get_osfhandle
  • 坏账损失的核算属于会计估计
  • 开了红字信息表当月怎么做账
  • 生活服务业纳税义务发生时间
  • 跨年坏账准备转回
  • 去年亏损今年盈利
  • 1000左右打印机
  • 织梦技术论坛
  • mysql优化总结
  • python dup函数
  • 月初红字冲销暂估入账
  • 资产减值损失属于
  • 公司为员工报销怎么做账
  • 递延收益的摊销时点
  • 交通运输行业属于什么性质
  • 简易征收的税款可以抵减
  • 增值税发票内容填写不全应如何进行处理?
  • 固定资产计提折旧的原则
  • 印花税征收范围口诀
  • 房地产开发企业建造的商品房,在出售前
  • 银行存款支付投资者投入的款项54万
  • 关于新企业所得税法说法正确的是
  • 个人向对公账户付款有风险吗
  • 买车保险返现是什么意思
  • 会计报表的主要构成内容
  • windows10如何更改管理员账户
  • windowsxp能用pr吗
  • 使用windows hello之前必须设置pin
  • windows累积更新
  • Linux(CentOS)用split命令分割文件的方法
  • guardhp.exe是什么意思
  • 搜集数据软件
  • 安装linux系统步骤图解
  • win7经常断网是什么原因
  • Win8开启SmartScreen筛选器保护上网安全
  • js如何使用
  • 一个简单的群规内容
  • node.js有什么作用
  • 实现原生的ajax
  • 批处理截取字符串
  • vue自定义方法
  • 深入解析抑郁症:什么是它的表现?别小看它的危害程度!
  • 安卓仿平板
  • unity3d效果图
  • javascript的理解
  • 广东高速费用支付宝支付如何开发票
  • 南阳市税务稽查局举报电话
  • 港澳台资企业
  • 青海税务发票查询
  • 河南省焦煤集团董事长
  • 下载国税网上申报
  • 湖南兴广地税务师事务所有限公司(兴广集团有限公司)
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设