Skip to main content

Python 教程

潘多拉宝库传世,奥圣山神仙授石

列位看官:你道此书从何而来?

在银河系的边缘,有一个名为 Pythora 的星球。这个星球上的所有生物,都使用一种灵巧的语言,Python,相互交流。实际上,不只是生物,在 Pythoria,一切事物都可以通过 Python 进行控制:从城市的交通灯到机器人厨师烹饪美食,甚至是星球的天气系统。

这个星球上,人人都精通 Python。他们能够即时编写和修改 Python 代码,以适应不断变化的环境和需求。在 Pythora,Python 不仅仅是一种语言,它已经成为了一种艺术形式。人们竞相创造出最优雅、最高效的代码,他们将这种创造力视为一种荣誉和成就。每年,他们会举办一场盛大的节日,名为“BUG清零节”,在这个节日中,最杰出的编程大师们会展示他们的作品,并分享他们对 Python 的独到见解。

然而,这个星球也有它的秘密。每当夜幕降临,Pythora 的居民就会进入休眠状态,它们的大脑会被一股神秘力量操控,接入位于遥远的圣山 OlymPyth,山中一个隐匿的端口。在联机状态下,人们的编程效率大幅提升,能够自动进行分布式计算,并行解决复杂的编程难题,还可以在梦中探索全新的编程思路和算法。传说在圣山 OlymPyth 的深处,隐藏着一个古老的库,里面存储着所有 Python 之父留下的原始代码。理解了这些原始代码的人将获得控制整个星球的能力。因此,Pythora 的朝圣者们前仆后继,试图闯入圣山,找到这座神秘的宝库,从而揭开 Python 最深层的秘密。

我踏着前人的足迹,已经在圣山脚下徘徊十几年了,却无法深入其中。那一日,我居然在密林从中发现一个前所未见的漏洞,终于得偿所愿,钻入了 OlymPyth 的腹地。当我走出山洞的时候,见到一位老者,仙风道骨,慈眉善目,站在路口。我赶忙上前搭话:“老神仙,你可知道这山中的宝库吗?”老者哈哈大笑,说道:“既然相遇,便是缘分。但我有事在身,不可久留。我这里有一块石头,乃是鸿蒙初开之时,落于此山青便峰下,自经煅炼,灵性已通。它会告诉你你想知道的一切,就把这块灵石送与你吧!”说罢,指向了身后一块大石。我刚想拜谢,却见那老神仙早已化作一缕 0 和 1 组成的字串,飘然散去了。

我敲了敲石头,问道:“石头兄,能给我讲讲 Python 的奥妙之处吗?”石头道:“自然,自然。你且备好纸笔,我只说一次......”我赶紧掏出背包中的笔记本电脑,边听边记,一字不漏编绘成这本《Python 秘籍》。

内容简介

本书的阅读页面是: https://py.qizhen.xyz。手机屏阅读的时候,查看全书目录需要点击一下页面左上角三根横线的那个按钮。需要搜索特定内容可以使用页面右上角的搜索框。有任何建议或问题,欢迎留言讨论。如果读者愿意,也可以点击每个页面左下角的编辑连接,直接编辑书中的内容。

全书分五个主要部分:

  • Python 编程基础: 讲解了 Python 语言的核心语法和基础用法。通过这一部分的学习,可以掌握建立一个简单的小型程序所需的基本知识,如变量定义、基本数据类型、控制流语句等。
  • 函数式编程: 介绍了函数式编程的概念和在 Python 中的应用。这一部分着重于高阶函数、闭包、装饰器等概念,通过函数式编程的思想,讲解如何编写更加简洁、高效的 Python 代码。
  • 面向对象编程: 为了帮助理解和应用更复杂的程序设计模式,本部分深入探讨了面向对象编程的方法。内容涵盖类和对象的定义、继承、多态、封装等面向对象的基本原则,以及如何在 Python 中实现它们。
  • 数据结构与算法: 虽然数据结构和算法是与具体编程语言无关的通用概念,但实现它们的代码却是最好的参考范例。这部分内容不仅覆盖了数据结构如列表、栈、队列、集合和字典等,还包括了搜索、排序等基础算法,目的在于帮助读者理解它们的工作原理并学会如何在实际中灵活运用。
  • Python在特定领域的应用: Python 的应用实在是太广泛了,比如数据可视化、数据分析、网络编程、Web开发等。针对每个具体应用的介绍都显得非常零散,于是把它们都收录在“无所不能”的最后一部分。

书中所采用的示例程序,除了最简单的演示基本概念的示例之外,其它大多取材自常见的面试编程题目。

images/000.png

为什么要写一本 Python 的书?

毕竟,Python 的书太多了。而且,现在大家都看视频了,谁还看书呢?

在中国,我属于比较早就开始接触编程的了。上大学之前,我曾简单接触过 BASIC 语言,虽然连入门都不能算。真正开始系统学习编程还是在上大学之后,起步是从 Pascal 语言开始的。学生时代,我还学习了汇编、C、Scheme、MATLAB 等语言。步入职场后,主要使用的语言却都是学校里不曾教授过的,包括 C++、C#、LabVIEW、Java、PHP、JavaScript、Python 等。在学校时,教科书是我们的主要学习资源。工作初期,要学习一门新语言,我通常也会翻阅书籍。那时候,找到一本好书至关重要。记得当年,《Effective C++》 是我们学习 C++ 时的必读之作,而 《Design Patterns》 则指导了我们学习 Java 的道路。相比之下,我学习 JavaScript 和 Python 的时期稍晚,那时的学习方式已经革新了,搜索引擎成了我的主要学习工具。说来惭愧,我至今一本 JavaScript 或 Python 的书都还没看过,所有相关知识都是从 Google 上搜到的。

虽然书籍可能不再是我们获取知识的唯一途径了,但从我的经验来看,写作,或者说,记笔记,依然是学习过程中不可或缺的一环。亲手写过的知识,与仅仅阅读过的知识,掌握程度会截然不同。而把写好的文章发布出来,与人分享,则是写作的最强大动力。尤其对于我这种比较懒惰的人,非常需要这样一个外在目标驱动我不断学习。

今天,我们又一次站在了技术变革的门槛上。大语言模型很可能将取代搜索引擎,成为未来获取学习资料的主要途径。深入体验大语言模型为学习和写作带来的新机遇,也是我撰写此书的初衷之一。当我整理完书中的核心内容后,我将在本书的“后记”中分享我对大语言模型的体验和感悟,作为整个写作过程的一个总结。