位置: 编程技术 - 正文

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)

  • 行政事业性收据发票记帐
  • 小微企业普惠性税收减免政策2019 13号
  • 固定资产的税费可抵扣吗
  • 备用金支出怎么记账
  • 小规模纳税人年应税销售额标准是
  • 营改增后建筑行业甲供材
  • 餐饮行业打折部门是什么
  • 其他综合收益损失
  • 实收资本变更股东要交税吗
  • 研发费用是否包括增值税
  • 生产企业的安全员好干吗
  • 公司组织客户旅游费用怎么做账
  • 计提营业账簿印花税怎么做账
  • 免抵调增值税是否缴纳附加税
  • 企业租车费用怎么处理方法
  • 营改增后出售以前年度的固定资产怎么申报?
  • 没有进项开销项发票是虚开发票吗
  • 本月只有红字发票该怎么申报小规模
  • 一般公司报销一个月报销几次
  • 光纤熔接发票属什么类别
  • 4s店 监管
  • mac系统怎么设置字体大小
  • 如何免费获取Win11企业版
  • 下花园6路公交车时间表
  • 增资后持股比例怎么算
  • php如何实现多进程
  • 支付代账公司费用 怎么写凭证
  • dotnetfx.exe
  • 冲销上月计提费用
  • 交易性金融资本
  • hotkey osd driver可以卸载吗
  • php网站实例
  • 训练自己的GPT模型 中文改英文
  • php分割数组
  • 3d reconstruction
  • php预处理查询
  • 短期借款利息有可能资本化处理,也可能费用化处理
  • 合同印花税可以年底报一次
  • 预收货款尚未发货
  • 员工去外地培训费怎样入账
  • 长期股权投资种类
  • 附加税申报核心内容
  • 企业投资一个小时多少钱
  • 公户直接转给私人账户违法么
  • 基本户和一般户可以互相转账吗
  • sqlserver数据导入mysql
  • 外购固定资产对公司影响
  • 建筑企业缴纳资源税
  • 售后回租会计准则
  • 退休人员返聘签订什么合同
  • 利润所得税费用
  • 逾期的押金计入什么科目
  • 银行手续费在现金流量表怎么填
  • 法人私户转公户备注什么
  • 收到联营单位投入的款项98600元存入银行
  • 财产清查存在的问题及原因分析
  • sqlserver批量备份数据库
  • win mysql
  • win8怎么设置
  • win10系统不能打印图片
  • linux的apache
  • pps影音怎么没有了
  • linux日志内容
  • window10怎么升11
  • win7系统英雄联盟黑屏
  • win7旗舰版升级win10
  • WIN10系统安装.net报错0x80072f8F
  • unity脚本编写教程
  • jsp验证邮箱格式
  • jquery简单例子
  • 右键菜单中添加文字
  • unity游戏官网
  • unity 角色控制器设置isTrigger问题
  • JavaScript Array对象详解
  • jQuery实现ajax的叠加和停止(终止ajax请求)
  • python连接mysql实例分享
  • js实现框选
  • 每天一篇小练笔主题
  • javascript学习指南
  • 城市建设维护税减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设