1.使用enumerate而不是range

range(len())的传统写法上比较直接,但可读性不好。

python中更好的做法是将列表或序列传递给内置的enumerate函数,它将返回索引的整数值和当前索引对应项。

举个例子:

animals = ['cat','dog','moose']
for i,animal in enumerate(animals):print(i,animal)

调用enumerate()并直接在一个序列上进行迭代要比使用传统的range(len())

方式更好。

2.使用with代替open和close

open函数可以返回一个文件对象,该对象包含读取和写入文件的方法。当操作完成后需要调用close()方法释放文件,以便其他程序读取和写入。

问题在于,如果try块中出现了异常,程序会跳过close调用,文件将一直保持打开状态。这可能导致文件损坏,而且错误很难被追溯到try块上。

更好的做法是使用with,它可以在执行顺序离开with语句块时自动调用close。

3.使用is跟None比较,不用==

==比较的是两个对象的值,is比较两个对象的身份。

将某个值跟none比较时,绝大多数情况下应使用is,而不是==。

4.如果字符串有很多反斜杠,使用原始字符串

原始字符串是具有r前缀的字符串字面量,它将不把反斜杠视为转义字符,而作为普通字符;这样的可读性更好。

举个栗子:

print(r'C:\Users\Archive\..')