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\..')