位置: 编程技术 - 正文

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)

  • 汇算清缴补缴企业所得税怎么做账
  • 出售固定资产简易计税账务处理
  • 广告设计公司挣钱吗
  • 填仓2021
  • 现金折扣税务筹划
  • 非利息净收入包括营业外收入吗
  • 应收账款和长期应收款区别
  • 存在问题的具体表现和产生问题的原因分析
  • 可抵扣租赁费如何摊销做会计分录呢?
  • 行政单位预算外资金收入
  • 建筑行业开工程票,材料抵扣有没有比例
  • 电子承兑汇票没开通能接受吗
  • 总公司委托分公司工程委托书模板
  • 免税企业取得增值税专用发票怎么处理
  • 企业所得税申报时间
  • 其他公司代缴社保分录
  • 汽车修理厂可以安装车牌吗
  • 中央财政补贴政策
  • 收据大写要写整吗
  • 残疾人保障金怎么计提
  • 录入凭证时记账的依据是
  • 下属单位或者其他单位和个人的车辆
  • 进项税额转出会计分录月末如何结转
  • 加工贸易企业如何财务管理账务流程
  • windows10如何切屏
  • 禁止局域网用户访问权限
  • 如何用home
  • 苹果macOS Big Sur 11.0.1全新系统壁纸
  • 保险委托支付
  • 违约金没有写按什么算
  • element-ui表格
  • 马尼亚岛的降水特点
  • 个人独资企业和合伙企业的区别
  • 免征企业所得税的有
  • laravel 更新数据
  • php strncmp
  • 建筑业成本核算流程
  • 公办学校的会计
  • 出售自建不动产怎么交税
  • 印花税的花贴在哪里
  • 如何设置linux
  • 净资产包含哪些项目
  • 发票报销有时间期限吗
  • 内账的账务处理
  • 纳税人企业本月纳税额
  • 企业从银行取得短期贷款存入银行,属于( )类型变化业务
  • 异价调拨什么意思
  • 出租周转材料的租金会计科目
  • 业务招待费占管理费用的多少算合适
  • 农产品投入产出法怎么计算
  • 预收账款计入应收账款怎么弄
  • 增值税发票红冲和作废的区别
  • 测绘费发票图片
  • 客户要扣货款太多怎么处理
  • 企业超过一定金额采购需求
  • .NET Framework SQL Server 数据提供程序连接池
  • ms17010补丁怎么安装
  • mac蓝牙连接iphone有什么用
  • 怎么在bios里设置usb开关
  • ecap.exe是什么
  • win7命令提示符怎么打开
  • 误删了分区怎么恢复
  • win8蓝牙连不上
  • win8.1 ie浏览器
  • unity怎么bake
  • cocos2dx 3.4 lua加密 setXXTEAKeyAndSign
  • unityshader怎么用
  • unityz
  • python 对象函数
  • 手把手教你使用opc
  • JavaScript基础语法
  • android隐藏
  • unity接收数据
  • python 中的列表
  • 税务局上班吗今天
  • 中国移动怎么下载账单
  • 上海各区税务大厅
  • 河南电子税务局残保金怎么申报
  • 服务类发票 如何入账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设