如果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,而非==。