位置: 编程技术 - 正文

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)

  • 平行结转分步法各步骤的费用
  • 融资租赁税率是什么意思
  • 农业生产者销售自产农产品按9%的税率征收增值税
  • 地下车库的成本核算
  • 研发人员报销
  • 汽车租赁油费怎么算
  • 建安企业异地个税怎么交
  • 企业所得税是按季度还是按月
  • 纳税人核定征收企业所得税
  • 自然人税收申报显示申报失败:未选择纳税人
  • 计算消费税要价税分离吗
  • 财务计提个人缴纳社保部分怎么记账?
  • 预缴税金跨区域涉税在哪查询
  • 其他公司垫付货款合法吗
  • 长期负债在报表哪里看
  • 财务预提
  • 车辆购置税可以代缴吗
  • 待认证进项税额借贷方向
  • 季度所得税缴纳时间规定
  • php字符串函数大全
  • 应收账款可不可以作为质押合同的标的
  • 哪些收入需要交消费税
  • win11专业版和家庭版哪个更流畅
  • thinkphp实现163、QQ邮箱收发邮件的方法
  • php的缓存文件是什么格式
  • 停车缴费怎么交
  • 结转完工产品成本计算公式
  • 以旧换新方式销售货物,以实际收取的价格
  • 固定资产抵债债权人账务处理
  • 深度学习&故障诊断初学者 - 学习路线
  • 所得税返还计入什么科目
  • 同一控制下企业合并报表编制
  • 前端静态页面
  • php开发实战权威指南
  • 一只什么海鸥填空
  • 左右等宽上下等高的字有哪些
  • go语言入门指南
  • 直接进入税金及附加的科目
  • apdl命令流手册下载
  • 装订好的凭证可以拆开吗
  • 企业净利润归谁所有
  • etcd4
  • 网络编程知识
  • mongodb $and
  • nosql manager for mongodb
  • 资产处置损益算营业外收入吗
  • 已申报营业税未开发票
  • 本月发料凭证会计分录
  • 计提折旧的固定资产平均总值怎么算
  • 哪些进项发票不能认证
  • 进口关税征收方法
  • 企业未开票收入怎么入账
  • 销售收入小于销售成本
  • 公司购买的公司用车
  • 销售费用主要包括
  • 无发票临时工劳务费账务处理
  • 商业承兑汇票提示付款流程
  • 年末未分配利润总额计算公式
  • mysql 5.7.11 winx64安装配置教程
  • 小黑马科技
  • windows7cmd命令不能执行
  • win8功能大全介绍
  • [置顶]电影名字《收件人不详》
  • Tutorial 3: First Triangle
  • ajax 编码
  • 安卓listview的用法
  • JQuery.validationEngine表单验证插件(推荐)
  • scrollview不滚动
  • 一波JavaScript日期判断脚本分享
  • 基于javascript的毕业设计选题
  • shell脚本实际运用
  • jquerydom操作
  • JavaScript bold方法入门实例(把指定文字显示为粗体)
  • android的r
  • 广西税务12366如何查看代他人缴费发票
  • 施工企业建筑机械管理机构主要职责是负责建筑机械的
  • 纳税人欠缴税款怎么办
  • ecco made in china
  • 德阳契税收费标准2022
  • 告知承诺和非告知承诺
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设