前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常被误用的语法

常被误用的语法

作者头像
TalkPython
发布2022-11-21 13:29:57
2410
发布2022-11-21 13:29:57
举报
文章被收录于专栏:TalkPython

如果Python不是你的第一门编程语言,那么你可能会用其他编程语言的代码编写策略来写Python代码。或者因为不知道有更加优雅编写方式,编写了不太优雅的程序。

下面介绍几种常见的误用方式,以及该如何编写更加优雅的代码。

1、使用enumerate()而不是range()

当我们有一个列表需要遍历的时候,大部分时间我们使用range()函数和len()函数生成从0到序列长度−1的索引整数。在这些for循环中通常使用变量i来获取列表里的元素。

range(len())的传统写法比较直接,但不够理想,因为它的可读性不好。更好的做法是将列表或者序列传递给内置的enumerate()函数,它将返回索引的整数值和当前索引对应的项。

使用enumerate()替代range(len())可以让你的代码整洁一点。

2、使用with语句代替open()和close()

open()函数将返回一个文件对象,该对象包含读取和写入文件的方法。当操作完成后需要调用close()方法释放文件,以便其他程序读取和写入。如果你忘记了些close方法,文件就会一直处于打开状态,可能导致文件被损坏,程序也会出现异常。

通常情况下,更好的做法是使用with语句,它可以在执行顺序离开with语句块时自动调用close()。尽管没有明确地调用close(),但当执行顺序离开这个块的时候,with语句会自动调用它。

3、用is跟None做比较而不用==

==相等运算符是比较两个对象的值,而is身份运算符是比较两个对象的身份。两个对象可以存储相同的值,但它们是两个独立的对象,拥有不同的身份。将某个值跟None比较时,绝大多数情况下应使用is,而非==。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TalkPython 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档