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,抓取网页数据
为什么会这么火?我觉得有两点:
- 语法简洁:同样的功能,Python代码量通常是Java的1/3
- 生态丰富: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 知识体系总览
下面这张图,是我整理的第一章知识结构。你可以把它当作学习地图:
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语法核心。到时候我会分享一些我在实际项目中总结的编码习惯,保证实用。