Python 是一个美丽的语言,可以激发用户对它的爱。所以如果你试图加入程序员行列,或者你有点厌倦C++,Perl,Java 和其他语言,我推荐你尝试Python.
Python有很多吸引程序员的功能 ,它易学,面向对象,字节码编译,免费且开源。还有运行时检查。完整快速的支持,可以执行各种任务的扩展。
高效的Python
在这篇文章,我想强调一些 Python 可以节约时间并最大限度地提高生产力的方面。在做准备时,我结合自身的经验,咨询了几个 Pythonists,他们最节省时间的技巧是什么?
1. 不使用分号
使用分号在 Python 中是可选的,对比其他面向对象语言,你不需要在每一条语句后面使用分号。
这看起来很简单,似乎也节省不了多少时间;但一旦你的代码量扩展到数千号,这些分号就变得分心且没有必要键入。
2. 找一个称手的代码编辑器
选择一个称手的代码编辑器可以节省大量的时间。面对这么多代码编辑器,很多新手都会感觉很迷茫。
习惯一个编辑器再使用其他编辑器会觉得很混乱,所以选一个称手的是一个好的起点。不管你选择哪一个,要实时支持 flake8 和 PEP8。
3. 遵循 Python 代码规范
<tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1560757273225" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image<input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>
遵循 Python 代码规范可以提升代码的可读性,从而节省评审代码的时间。(Python 的设计哲学 强调代码的可读性。)
4. 使用 help() 函数
Python 的 help() 是随手可用的内置函数可以节约很多时间,比如查找其他函数的解释。你可以在解释器终端直接运行该函数。
Python 文档有更多该函数的用法。
5. 使用库
Python 有大量的库可以让你不必每次都重复造轮子。
比如,你可以从 PyPI(Python包索引)选择大量可用的包,这是一个软件仓库。
<tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1560757273229" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image<input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>
image
Scikit-image 是一个很好例子,它使图像处理任务如模糊,增强对比度,缩放只需要一些函数调用就可以完成。Python学习交流群:1004391443
6. 使用Cookiecutter
<tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1560757288271" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image<input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>
image
Cookiecutter 是一命令行工具,可以帮助你从工程模板创建 Python 工程,这可以节省大量的时间。
7. 严格的注释
养成写注释的好习惯,可以节省你和其他人的时间,尤其是作调试跟踪。(是的我们听到很多,但似乎很多程序员还是需要提醒)。
<tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1560757288286" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image<input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>
image
注释在团队合作是非常关键,尤其是一个做了大量变更。
8. 经常测试
尝试测试你程序中的每一个组件。听起来好像有点费时,但长时间运行可以节省大量时间,帮助你发现隐藏的 bug,让你对代码更放心,还强制你理解自己的每一片代码在真实情况下是如何地运行。
REPL 是一个 read-eval-print loop,一个常用的代码测试工具,很多 Pythonists 使用它。
9. 专注和专业
<tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1560757288301" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image<input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;"></tt-image>
image
Pythonists 都建议要有一个专注领域和专长。你可以使用 Python 做很多事情,从编写网页摄像到处理计算和算法。
已经有大量的库可以帮助完成这些任务,如 SimpleCV,计算机视觉处理;Biopython,是一个生物计算库; SymPy,是一个数学符号计算库。
深入类似这些的领域,并掌握一个特定的框架,帮助你在更深的层次学习 Python,掌握一个特定的代码风格(在第三部分已经提到),处理特定类型的问题。
10. 每天编码
当你养成了每天写 python 代码,使用 python 解决问题的习惯,你就会开始用 python 思考,可以这么说,这将最终会帮助你更快的解决问题。
总结
在这边简短的文章中,我已经列举了主要的几个我从和 python 开发者的对话收集来的 tips,下面的是我能够添加进去的其他的 tips.
网友评论