1、Python入门:Python发展史、Python应用场景、Python开发环境搭建

1.1 Python的诞生与演进

Python诞生于1989年的圣诞节。说实话,这个时间点挺有意思的——当大家都在过节时,荷兰程序员Guido van Rossum在家写代码。他当时在荷兰国家数学与计算机科学研究所(CWI)工作,想搞一门语言,既能像C一样强大,又能像Shell脚本一样易用。

1991年,Python 0.9.0发布了。我刚开始接触Python时,已经是2.4版本了。那时候我还在用Perl写脚本,总觉得语法太啰嗦。直到有一天,同事扔给我一段Python代码——20行搞定了我写了80行的Perl脚本。嗯,从那天起我就入坑了。

Python的发展有几个关键节点:

  • 1994年:Python 1.0发布,引入了lambda、map、filter等函数式编程特性
  • 2000年:Python 2.0发布,加入了垃圾回收和Unicode支持
  • 2008年:Python 3.0发布,这是一个大版本,不兼容Python 2
  • 2020年:Python 2正式退役,官方不再维护

核心观点:Python 2到3的过渡,是我见过最痛苦的升级之一。我曾经维护过一个项目,代码库里有30%的代码是Python 2写的,迁移时各种编码问题、print语法差异,折腾了整整两周。所以现在我做新项目,一律用Python 3.8+。

1.2 Python到底能干什么?

说白了,Python就是个万能胶水语言。你想想看,从Web开发到人工智能,从自动化脚本到游戏开发,到处都有它的影子。

我个人最常用的几个场景:

  • Web开发:Django、Flask、FastAPI,我做过几个API服务,用FastAPI写起来特别爽
  • 数据分析:Pandas、NumPy,处理Excel表格比VBA快10倍
  • 自动化运维:写脚本批量处理文件、监控服务器状态
  • 人工智能:TensorFlow、PyTorch,现在AI领域基本被Python统治了
  • 爬虫:Scrapy、Requests,抓取网页数据

为什么会这么火?我觉得有两点:

  1. 语法简洁:同样的功能,Python代码量通常是Java的1/3
  2. 生态丰富:PyPI上有超过40万个包,你想做什么基本都有现成的

我的建议:如果你是初学者,别一上来就学Django或TensorFlow。先把Python基础打牢,特别是列表推导式、生成器、装饰器这些核心特性。我在面试时发现,很多人会用框架,但连Python的垃圾回收机制都说不清楚。

1.3 开发环境搭建——别在这步卡住

搭建开发环境,说白了就是装三个东西:Python解释器、包管理工具、代码编辑器。我见过太多新手在这步折腾半天,最后放弃了。其实没那么复杂。

1.3.1 安装Python

去官网python.org下载对应版本。我个人建议用Python 3.9或3.10,这两个版本比较稳定。安装时记得勾选「Add Python to PATH」,不然你后面还得手动配环境变量。

避坑指南:我曾经在Windows上装了两个版本的Python(2.7和3.8),结果pip install时总装错地方。后来我改用pyenv来管理多版本,再也没出过问题。如果你也遇到类似情况,试试pyenv或conda。

1.3.2 包管理工具

Python自带的pip就够用了。但如果你做数据分析或机器学习,我推荐用Anaconda。它自带了很多科学计算库,省得你一个个装。

常用的包管理命令:

# 安装包
pip install requests

# 指定版本
pip install numpy==1.21.0

# 导出依赖
pip freeze > requirements.txt

# 从文件安装
pip install -r requirements.txt

1.3.3 代码编辑器

新手我推荐VS Code,免费、插件多、社区活跃。装好Python插件后,代码补全、调试、格式化都很好用。

如果你做数据科学,PyCharm也不错,但社区版功能有限。我个人习惯用VS Code + Vim插件,写代码效率很高。

1.4 知识体系总览

下面这张图,是我整理的第一章知识结构。你可以把它当作学习地图:

Python入门 发展史 1989年诞生 2.x → 3.x 应用场景 Web开发 数据分析 人工智能 / 自动化 环境搭建 Python解释器 pip / conda VS Code / PyCharm 打好基础,后面30章才能跟上

1.5 第一个Python程序

装好环境后,打开终端或命令提示符,输入python,你会看到类似这样的提示符:

Python 3.9.7 (default, Sep 16 2021, 13:09:58)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

然后输入:

print("Hello, 从源码优化打印速度与精度!")

看到输出了吧?就这么简单。你想想看,这门课叫《从源码层面优化打印速度与精度》,但第一步其实是让Python先跑起来。后面我们会深入到print函数的源码实现,看看它到底是怎么工作的。

小技巧:在交互式环境里,你可以用help(print)查看print函数的文档。我刚开始学Python时,就靠help()函数查遍了所有内置函数。这比上网搜快多了。

1.6 本章小结

这一章我们聊了Python的来龙去脉、它能干什么、以及怎么搭环境。说白了,就是让你对Python有个整体认识,别一上来就陷入细节里。

我记得第一次用Python写生产代码时,犯了个低级错误——忘了Python是动态类型语言,把一个字符串当整数传给了函数,结果运行时才报错。从那以后,我养成了写类型注解的习惯。虽然Python不强制,但能帮你少踩很多坑。

下一章,我们会正式进入Python语法核心。到时候我会分享一些我在实际项目中总结的编码习惯,保证实用。