位置: 编程技术 - 正文

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)

  • 代销返点怎么交税费
  • 备用金要用发票做账吗
  • 勘探费收费标准
  • 投资收益科目在贷方
  • 金蝶k3现金流量明细查询
  • 取得的增值税专用发票能否盖付讫章
  • 跨年的管理费用怎么调到主营业务成本里
  • 加油站销售加油卡是否征收增值税
  • 现汇账户和现钞账户可以转账吗
  • 实收资本有什么税
  • 补缴的增值税可以计入以前年度损益调整
  • 减免税款未抵扣增值税
  • mac软件打开提示意外退出
  • 投资收益或亏损影响营业利润吗
  • mac big sur 菜单栏
  • 如果工资少发怎么办
  • 慈善捐赠金额排行
  • 怎么登明细分类账
  • 融资租赁的租金是什么意思
  • 1.exe是什么文件
  • 增值税的计税依据包括关税吗
  • php日历如何实现
  • linux 书 推荐
  • 米尔福德试车场
  • 银行存款缴纳房产税会计分录
  • 进销存如何结转成本
  • 企业出售生产设备能开票吗怎么开
  • node.js的安装步骤
  • 机器学习——图像分类
  • win11调节屏幕亮度快捷键
  • 以前多计提的工资怎么办
  • 公司银行开户的费用怎么做账
  • 花生油加工厂的手续好办吗
  • 预缴税款怎么做会计分录
  • 收到上市公司分红企业所得税减半征收的情景
  • 外经证预缴税款之后剩下的税款交到哪呢
  • 销售返利的账务处理购买方
  • 新租赁准则下的会计分录
  • 帝国cms如何使用
  • 记 vue-cli-plugin-dll 使用,优化vue-cli项目构建打包速度
  • 销售折扣收货方法有哪些
  • 国家企业信用公示信息公示
  • 社保缴费是当月扣当月的吗
  • 扣缴义务人如何登录电子税务局
  • 暂存款账务处理
  • 税务局不予受理的依据
  • 支付到期承兑汇票属于什么现金流量项目
  • 政府给的专款专用的补贴需要交税吗
  • 工程材料票占工程款的比例
  • 政府无偿划拨土地如何摊销
  • 业务收入和营业收入关系
  • 记账凭证的基本内容包括制证,审核,记账,会计主管
  • sql server服务包括有
  • 用sql语句实现分页效果
  • vista技巧:更改电源默认按钮为关机
  • xp系统无法更换桌面壁纸
  • WinAce.exe - WinAce是什么进程
  • encore是什么软件
  • vps禁用ipv6
  • win10系统怎么关闭病毒防护
  • win10开机多了一个账户怎么删除
  • cocos3d物理引擎
  • java timer
  • 安卓app开发框架模板
  • perl数组元素个数
  • css图片样式网站
  • 判断一个点在三角形内部
  • jquery文件上传进度条
  • Python 装饰器深入理解
  • js点击
  • js中写html代码
  • 谈一谈如何抓好党建工作
  • javascript中array的正确写法
  • JAVASCRIPT THIS详解 面向对象
  • jquery技巧
  • android混淆后怎么破解
  • 怎么查询工程师名下的项目
  • 核准类和备案类项目
  • 广东省广州市税务局分数线
  • 不动产租赁如何征税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设