资深程序员分享:想要Python薪资月薪30K,先把这些编程坏习惯改掉

在本文中我总结一些提升Python编程性能的心得,分享给大家。

坏习惯1

把重复操作作为参数放到循环语句里。如:

坏习惯

这样的编程性能不好,因为每次循环都浪费时间计算字符串String的长度上。如果把这个值做一次保存,可以用更为高效的方式重写上述循环操作:

好习惯

它们运行结果一样,如下:

运行结果

坏习惯2

用for语句生成列表。for语句优点是通俗易懂,速度比while语句块,但多重循环时,for语句可读性差,不够简练,当你做大项目实施时,应该尽量避免。如:

坏习惯

构造一个简单列表,上述代码花了3行代码,其实用列表解析,一行代码足够:

好习惯

也可以使用Lambda表达式(参考我的文章《Python中的Lambda表达式》),如:

好习惯

它们的运行结果一样,如下:

运行结果

列表解析很好用。比如要生成一个矩阵,需要两个for语句才能实现,可读性差,容易出错。用列表解析,一行代码即可,如:

更好习惯

运行结果如下:

运行结果

坏习惯3

读取文件后,忘记关闭文件对象。下面代码实现读取文件的第一行并打印出来。

坏习惯

上述代码打开文件,读取了数据,但忘记关闭文件对象,占用内存资源,特别是在多进程编程中,应及时关闭文件对象。正确的做法为:这里还是要推荐下小编的Python学习裙:‘’五八八,零九零,九四二‘’不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。

好习惯

还有一个更好习惯,专门给那些健忘症的人使用的,它能自动关闭文件对象。

更好习惯

在Python中,由于文件对象是可迭代对象,因此可以在不打开文件对象的情况读取数据(节省内存空间),下面的代码是更好更好习惯。

更好更好习惯

它们的运行结果一样,如下:

运行结果

坏习惯4

假设有一个大文件,文件大小超过计算机内存,但我们只需这个大文件的前5行数据,很多人使用以下编程方式,这时往往会产生内存溢出,使计算机变成砖头。

坏习惯

上述代码中使用readlines函数读取大文件,会一次性把大文件加载到计算机内存,容易产生问题。我们的目的是要这个大文件的前5行,因此没有必要加载整个大文件。正确的编程方法是使用readline函数,每次只读一行,代码如下:

好习惯

利用列表解析,还有更好的编程,代码如下:

更好习惯

由于文件对象是可迭代对象,甚至不需要用readline函数,更高效的方法是利用可迭代对象的内置方法__next__()实现,实际上readline函数是调用内置方法__next__()实现迭代,自然原始方法__next__()更有效。代码如下:

更好更高效习惯

它们的输出都一样:

运行结果

坏习惯5

最坏习惯是,还在苦苦坚持使用Python2.7版本及以下的软件,甚至把Python2.7的下面这套东西搬到Python3里,以显示自己的专业水准。果断放弃Python2,特别是新手,更应该毫不犹豫地选择Python3。

Python2头文件

总结

Python编程和开车一样,只是一种技能,选择一辆自动波轿车,果断放弃Python2,出发目的地之前,应该花点时间规划好路线,既省时间又省油,匆忙上路易出事故。切记:

能用for语句的地方,不要用while语句。一般来说,for语句的速度是while语句的两倍以上。

能用列表解析的地方,不要用for语句。

能用内置方法的地方,不要用引用该内置方法的方法。

能用readline函数的地方,不要用readlines函数。

打开对象,记得关闭对象。一定要使用括号调用函数。f.close()关闭文件是对的,f.close关闭文件是错的。

不要把不必要的数据写进内存。

选择合适的算法、合适的数据结构、合适的工具,单台计算机也可以处理大数据。

循环语句里不要重复计算同样的东西。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180312A0TL5W00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励