你听说过 Python 之禅吗?这些是每个 Python 程序员都应该知道的指导原则;它们和 Python 本身一样简洁、优美。让我们一起探索这些原则。
Python 之禅 是影响 Python 设计的 19 条指导原则的集合。这些原则是由软件工程师 Tim Peters 撰写的;他希望 Python 的创建者 Guido van Rossum 能添加第 20 条原则。然而,这从未实现,所以目前的数字是 19。即便如此,这套原则也被称为 PEP-20 .
PEP(Python 增强建议)是向 Python 社区提供重要信息或描述 Python 新功能的文档。就 PEP-20 而言,它只是这 19 条原则的列表。将这些准则纳入 PEP 中,表明它们是 Python 文化的重要组成部分,这是每个 Python 程序员都应该意识到的。
在 Python 中寻找 Python 之禅
要显示 Python 之禅,请在 Python 解释器中运行以下命令:
>>> import this
PEP 20 – Python 之禅
查看我们的交互式 Python 编程学习课程 ,了解这些原则如何应用于实际代码。但首先,让我们简要介绍一下每个原则。
Python 之禅的原则或 PEP-20
尽管《Python 之禅》的原则是由软件工程师编写的,但它们是用非技术语言编写的。所以我们实际上可能需要将这些写得优美的原则转化为可操作的见解。
1.美丽胜过丑陋。
漂亮的代码比丑陋的代码更好。如果两个代码片段都可以运行,但一个简单易读,而另一个混乱难懂,那么第一个肯定是赢家。Python 以其简单、易读和优雅而闻名。如果你想让你的代码看起来像 Python 风格,请注意它的一致性和简单性。
2.明确优于隐含。
您的代码应该让那些对您的程序一无所知的人也能理解。无需任何先验知识。尽可能使您的代码清晰易懂,而不要将代码功能隐藏在晦涩难懂的语言后面。
3.简单比复杂更好。
如果您有一个简单的问题,可以用一个简单的解决方案解决,那就去做吧。如果您有一个复杂的问题,请将其分解为几个简单的问题,这些问题可以用一个简单的解决方案解决。不要为了让代码看起来很聪明而使它过于复杂。这在 Python 中是不受欢迎的。
4. 复杂比繁琐好。
当你的问题需要复杂的解决方案时,它仍然不应该太复杂。复杂的代码会让你的程序员同事感到困惑,并浪费大量的时间和精力。即使处理复杂的问题,也要尽可能保持代码简单易读。
5.扁平比嵌套更好。
您喜欢按类别、子类别和子子类别来组织内容吗?那么,在组织代码时,这种层次结构通常会带来更多的混乱而不是组织。坚持使用扁平的代码结构并尽量减少嵌套。这对于代码的可读性非常重要——正如您所知,我们非常关心 Python 的可读性。
6.稀疏比密集好。
不要试图通过将大量功能压缩成一行代码来打动任何人。对于非程序员来说,这可能听起来很令人印象深刻,但事实上,这只会让您的同事感到困惑,他们需要额外的时间来理解您的代码。通常,最好有几行易于理解的代码,而不是一行密集的代码。
7.可读性很重要。
程序员通常会通过缩写变量和函数名称或跳过注释(或使注释过于简短)来节省时间。请记住:您可能只编写一次代码,但人们可能需要多次阅读。如果您真的想“节省时间”,请使用易于理解的变量和函数名称、详尽的文档和适当的缩进来使您的代码易于阅读。
8.特殊情况还不足以打破规则。
在 Python 中,有许多最佳实践可让您的代码对其他程序员更具可读性。遵循这些实践,而不是“按照自己的方式”去做。当您创建模块或库供其他人使用时,此规则尤为重要。
9.尽管实用性胜过纯粹性。
不过,每条规则都有例外。如果以“你的方式”解决问题更为实际,并且代码可读性强且易于理解,你有时可能会偏离既定的最佳实践。对于编程新手来说,在这一原则和上述原则之间寻找平衡可能具有挑战性,但随着经验的积累,情况会变得更容易。
10. 错误不应该悄无声息地发生。
如果出现错误,而程序返回 None 或仅返回错误代码,则表示存在静默错误。这可不是什么好事。静默错误最终会导致更难修复的错误(因为更难追踪原始原因)。程序崩溃总比静默错误并继续运行要好。
11.除非明确禁止。
在某些情况下,您可能希望忽略程序可能引起的错误。那么最佳做法就是在代码中明确地消除此错误。
12. 面对模糊性,拒绝猜测的诱惑。
如果您的代码无法正常工作,请不要盲目尝试不同的解决方案,直到其中一种解决方案似乎有效。您可能只是掩盖了问题而不是解决问题。相反,请运用批判性思维来理解问题,然后找到合适的解决方案。
13. 应该有一种——最好只有一种——显而易见的方法来实现这一点。
如果对同一问题有多种解决方案,则灵活性会更高。然而,这也会增加复杂性和工作量,因为你需要熟悉所有可能的解决方案。
Python 的核心是简洁,而这一原则就是一个很好的例子。请注意这一原则中“one”后面的后缀运算符(双破折号)和“obvious”前面的前缀运算符。新程序员经常搞不清楚何时使用后缀运算符或前缀运算符。Python 通过不支持这两种运算符解决了这个问题。
14. 尽管这种方法一开始可能并不明显,除非你是荷兰人。
这个原则出自 Python 创始人 Guido van Rossum,他是荷兰人。显然,对于他来说,回忆和理解 Python 中的任何规则都比其他人更容易。
15. 现在总比没有好。
这一原则至少有两种不同的解释。有些人认为它指的是无限循环,你显然应该在代码中避免这种循环。另一种可能的解释是,你只需要避免拖延你的编程项目。我认为如果我们接受这两种解释,那就没什么坏处了。
16. 尽管从未发生过总是比现在更好。
此原则详细阐述了前一个原则的思想。如果我们将其直接应用于我们的代码,我们可以说,等待程序结束比提前终止并得到错误结果要好。如果我们谈论的是一般的编程项目,我们可以将此原则解释为呼吁对项目进行一些思考和规划,而不是立即投入其中。
17. 如果实施过程很难解释,那么这是一个坏主意。
如果您很难向同事解释您的实现,那么它可能是使用糟糕的代码编写的。最有可能的是,您将其变得过于复杂,并且违反了上述一些原则。尝试简化您的解决方案,直到您可以轻松地向其他程序员解释它为止。
18. 如果实现方法很容易解释,那么这可能是一个好主意。
如果你能轻松地向同事解释你的实现,那就 太好 了。虽然它仍然可能是错误的,但从代码的可读性和简单性来看,你已经走在了正确的道路上。
19. 命名空间是一个非常好的主意——让我们多做一些吧!
在 Python 中,您可以拥有独立的命名空间或名称集合,让程序中的每个对象都有唯一的名称。命名空间创建了一个系统,其中一个模块中的名称不会与另一个模块中的名称冲突。这使得它们非常方便。
就这样!我们已经讲完了 Python 之禅的全部 19 条原则。现在,是时候实践了。
开始践行 Python 之禅
Python 代码简单、易读、简洁,因此可以 快速学习这种编程语言 。但是,与任何新编程语言一样,大量使用真实代码进行练习至关重要。在 ,我们有很多互动课程,让您可以直接开始编码,而无需自己设计问题和练习。
我建议从 Python 基础开始。练习 。它针对的是那些了解 Python 基础知识但缺乏编码经验的初学者。15 个交互式任务将让您创建简单的 Python 应用程序、使用 Python 中的变量、应用基本的数学运算符、使用循环和 if 语句以及使用基本的 Python 数据结构。
如需更多练习和 乐趣 ,请查看 Python 练习:文字游戏 。该课程包括 27 个任务,分为三个有趣的主题部分:(1) 用 Python 实现一个简单的密码;(2) 分析其中一本福尔摩斯小说的文本;(3) 实现有助于玩拼字游戏的函数。
如果您正在寻找一个全面的学习课程,向您介绍 Python 编程的基础知识,那么 “学习使用 Python 编程” 绝对值得您关注。它包括 5 门交互式课程,涵盖 Python 语法、Python 数据结构和 Python 内置算法的基础知识。凭借其精心设计的学习路径和逐渐增加的复杂性,该课程将使您能够 在不到一个月的时间内学会 Python .
奖励 。以下是我们列出的 顶级免费 Python 课程 .
感谢阅读,祝您学习愉快!
发表评论 取消回复