Python90 系列文章内容主要参考《Effective Python 90 Specific Ways to Write Better》(高效Python,编写更好的Python代码的90条具体建议),适合已经熟悉基本语法的同学阅读。写书时,作者使用的是Python3.8,本系列文章也会使用该版本。全书共10章,90小节,对应90条编写高质量Python代码的具体建议。10章的内容如下:
Python社区使用Pythonic来形容Python的独特风格--简单明了。Pythonic不是由编译器(compiler)强制实现的,而是在经验中产生的。熟悉其它语言的程序员在写Python时可能会代入C++、Java习惯。新手程序员可能对Python的简单语法满意。知道如何用Pythonic方式来完成Python中的一般任务非常重要。这些模式会影响你的每个程序。
知道你现在使用的Python版本非常重要,尤其是在你有多个虚拟环境的时候,有非常多的人把包安装到一个环境,然后又使用另一个环境编写代码,出现找不到包的错误。
在命令行使用下面命令查看python版本
python --verion
输出:
Python 3.8.13
或者(在解释器中)利用内置的sys模块查看
import sys
print(sys.version_info)
print(sys.version)
输出:
sys.version_info(major=3, minor=8, micro=13, releaselevel='final', serial=0)
3.8.13 (default, Mar 28 2022, 06:59:08) [MSC v.1916 64 bit (AMD64)]
或者,使用Pycharm可以在右下角看到Python解释器版本:
Python核心开发者和社区积极维护、改进Python3。Python3有一系列强大的新特性。大多数开源的Python库都兼容Python3,因此强烈推荐使用Python3。Python2计划在2020年1月停止维护。如果你还在用Python2的代码,考虑使用工具例如2to3
或six
帮助代码迁移到Python3。
彩蛋:
在Python解释器中输入import this
来阅读Python之禅(Zen of Python)
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
python之禅,写自Tim Peters
美丽胜过丑陋。
清楚胜过模糊。
简单胜过复杂。
复杂胜过错综复杂。
扁平胜过嵌套。 # 拒绝非常多层的嵌套
稀疏胜过稠密。
可读性非常重要。 # 遵循代码规范
特殊情况不足以破坏规则。
实用性胜过单纯。
错误不该被安静地跳过。 # 要么处理错误,要么抛出错误
除非显式消除。
面对歧义,拒绝猜测。 # 不要写容易产生歧义的代码
应该有一种而且最好是只有一种明显的方法来做一件事。
尽管这种方式可能不那么显然,除非你是荷兰人。 # ?大概是因为作者是荷兰人
现在去做而不是推到以后, # 简陋的实现比没有好
即使将来比现在好。
如果实现很难解释,那么这是个坏主意。
如果实现很易解释,那么可能是好主意。
命名空间是个好想法,让我们做更多命名空间。