Python编码规范及代码优化建议

本文介绍了Python编程的规范,包括缩进、模块导入、分隔换行、注释和代码优化。强调了代码可读性和效率,提倡使用元组、集合等数据结构,并利用逻辑运算的惰性求值。同时,分享了一首关于Python之禅的打油诗,展现了Python简洁优美的哲学。
摘要由CSDN通过智能技术生成

python支持命令行形式与函数形式的编程,前者类似于matlab,后者则对代码规范提出了较高的要求。

1、缩进

        类定义、函数定义、选择结构、循环结构、with 块,行尾的 冒号 表示缩进的开始。python程序是依靠代码块的缩进来体现代码之间的逻辑关系的, 缩进结束就表示一个代码块结束了 。同一个语法块的代码块的缩进量必须相同,一般地,python以 4 个空格 为基本缩进单位。

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* 更好。

如果实现很难解释,那是个坏主意。

如果实现很容易解释,那可能是个好主意。

命名空间是一个很棒的想法——让我们做更多的事情!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月是你的谎言..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值