python支持命令行形式与函数形式的编程,前者类似于matlab,后者则对代码规范提出了较高的要求。
1、缩进
2、模块导入
每个import语句只导入一个模块,最好按标准库、扩展库、自定义库的顺序依次导入。
Python 标准库大全看这篇就够了 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/386379860
3、分隔换行
最好在每个类、函数定义和一段完整的功能代码之后增加一个空行,在运算符两侧各增加一个空格,逗号后面增加一个空格。
代码的可读性与语句的长度也有关系,适当拆分语句是增强代码可读性的一大利器。如果语句确实太长而超过屏幕宽度,最好使用续行符“\”,或者使用圆括号将多行代码括起来表示是一条语句
4、注释
每种语言都有独特的注释风格,python以符号#开始,表示本行#之后的内容为注释。包含在一对三引号'''...'''或"""..."""之间且不属于任何语句的内容将被解释器认为是注释。
5、代码优化
此外,虽然Python运算符有明确的优先级,但对于复杂的表达式建议在适当的位置使用括号使得各种运算的隶属关系和顺序更加明确、清晰。
在运行速度方面,内置对象运行速度最快,标准库对象次之,用C或Fortran语言编写的扩展库速度也比较快,而纯Python的扩展库往往速度慢一些。在开发项目时,应优先使用Python内置对象,其次考虑使用Python标准库提供的对象,最后考虑使用第三方扩展库。
教材上关于内置对象的选择有较为冗长的篇幅,简单概括:
如果定义一些数据只是用来频繁遍历并且关心顺序,最好优先考虑元组。
如果需要频繁地检查一个元素是否存在于一个序列中并且不关心其顺序,尽量采用集合。
列表和元组的插入操作的时间复杂度是线性的,而对于集合和字典却是常数级的,与问题规模几乎无关。
充分利用关系运算符以及逻辑运算符and和or的惰性求值特点,合理组织条件表达式中多个条件的先后顺序,减少不必要的计算。
充分利用生成器对象或类似迭代对象的惰性计算特点,尽量避免将其转换为列表、元组等类型,这样可以减少对内存的占用,降低空间复杂度。
减少内循环中的无关计算,尽量往外层提取。
打油诗一首,学校ppt上面的,真是“有趣”哈^~^:
翻译,看看google.translator闹的笑话啊哈哈哈:
Python 之禅,蒂姆·彼得斯 (Tim Peters) (这句能这么翻译确实挺强的,语义给它整明白了)
美丽总比丑陋好。
显式优于隐式。 简单胜于复杂。
复杂胜于XXX。
平面优于嵌套。
稀疏比密集好。
可读性很重要。
特殊情况不足以打破规则。
虽然实用胜过纯洁。
错误永远不应该悄无声息地过去。
除非明确沉默。
面对模棱两可,拒绝猜测的诱惑。
应该有一种——最好只有一种——明显的方法来做到这一点。
虽然这种方式一开始可能并不明显,除非你是荷兰人。
现在总比没有好。 虽然从来没有现在通常比 *right* 更好。
如果实现很难解释,那是个坏主意。
如果实现很容易解释,那可能是个好主意。
命名空间是一个很棒的想法——让我们做更多的事情!