学习一门语言首先要了解它的发展历史,让我们先来了解一下Python的发展历史吧。
一、诞生背景(1989)
创始人:吉多・范罗苏姆(Guido van Rossum),荷兰程序员。 1989 圣诞假期,Guido 在荷兰 CWI 国家数学和计算机研究所,为打发假期,基于 ABC 语言开发新脚本语言。 取名 Python:源自他喜爱的喜剧《蒙提・派森》(Monty Python),本意希望语言简单、有趣、易读。
设计核心初衷
- 替代复杂难用的 Shell 脚本与 C;
- 解决 ABC 语言封闭、扩展性差的缺陷;
- 强调可读性、简洁、可移植。
二、初代版本:Python 0.x 原型期
- Python 0.9.0(1991 年 2 月)首个公开版本,已具备现代 Python 核心骨架:
- 类、继承、异常处理;
- 函数、动态类型;
if/for/while基础控制流;- 模块化编程(
import); 标志性特色:缩进代替大括号,从这一版本定型。
- 0.9.x 小版本完善列表、字典、字符串基础数据结构。
三、Python 1.x 稳定普及期(1994–2000)
- Python 1.0(1994)正式稳定发行,新增关键能力:
- 函数式编程工具:
lambda、map、filter、reduce; - 模块系统、类完整继承;
- 支持跨平台(Unix、Windows、Mac)。
- 函数式编程工具:
- 1.1 ~ 1.6 迭代更新
- 1.2:引入异常捕获语法;
- 1.4:支持关键字参数、内置复数类型;
- 1.5(1997):加入完整正则库
re、Tkinter GUI 标准库; - 1.6:Unicode 初步支持、垃圾回收优化。
痛点:1.x 字符串不区分字节与文本,编码混乱,埋下重大兼容隐患。
四、Python 2.x 全民主流时代(2000–2020)
1.Python 2.0(2000.10)里程碑大更新
彻底重塑语言,奠定长达 20 年的工业基础:
- 垃圾回收引入引用计数 + 分代 GC,支持循环引用回收;
- 列表推导式
[x for x in ...]; - Unicode 字符串类型
unicode(); - 统一跨平台标准库、网络模块;
- 支持
yield生成器。
2. 2.x 关键子版本
- 2.2:新式类(
object基类)、迭代器协议; - 2.4(2004):装饰器
@语法、集合set; - 2.5:
with上下文管理器、try-except-finally; - 2.6 / 2.7:过渡版本,大量兼容 Python3 语法,提供迁移工具
2to3。
2.x 致命缺陷
- 两套字符串:
str(字节)、unicode(文本),极易编码报错; - 整数除法
3/2=1不符合直觉; - 语法冗余、标准库设计混乱。
2020 年 1 月 1 日,Python 2 正式停止所有维护,全面淘汰。
五、Python 3.x 现代化重构(2008–至今,当前主流)
1. Python 3.0(2008.12):不兼容的彻底重构
Guido 下定决心打破兼容,根治 2.x 历史包袱,核心改动:
- 字符串统一:
str= Unicode 文本,bytes单独表示二进制; - 除法修正:
3/2=1.5,整数整除用3//2; print改为内置函数print(),不再是语句;- 移除
xrange,统一为range; - 异常语法、输入函数
input()重构; - 统一编码默认 UTF-8。
初期阻力极大:大量第三方库仅支持 2.x,迁移成本高,出现长达十年 “2/3 分裂期”。
2. 3.x 划时代重要版本
- 3.3(2012):Windows 原生完整支持、
yield from; - 3.4(2014):标准库加入
asyncio雏形异步框架; - 3.5(2015)重大更新
- 原生异步语法:
async/await; - 类型注解
def func(x: int) -> str; - 矩阵乘法运算符
@;
- 原生异步语法:
- 3.6(2016):f-string 格式化字符串(
f"name={name}"),字典有序存储; - 3.7(2018):数据类
@dataclass,延迟字典有序正式规范; - 3.8(2019):海象运算符
:=,位置仅参数/; - 3.9(2020):字典合并运算符
|,类型注解简化; - 3.10(2021):模式匹配
match-case(类 switch)、更好错误提示; - 3.11(2022):整体性能提升 60%,优化异常堆栈;
- 3.12(2023):持续性能优化、简化语法;
- 3.13(2024):官方实验 JIT 编译器,进一步提速。
六、发展时间线极简总结
| 年份 | 版本 | 核心事件 |
|---|---|---|
| 1989 | 项目启动 | Guido 圣诞假期开发 |
| 1991 | 0.9.0 | 公开首发,缩进语法成型 |
| 1994 | 1.0 | 稳定正式版,函数式特性 |
| 2000 | 2.0 | Unicode、垃圾回收、统治行业 20 年 |
| 2008 | 3.0 | 重构不兼容,解决编码痛点 |
| 2015 | 3.5 | async/await、类型注解 |
| 2020 | Python2 停止维护 | 全面进入 3.x 时代 |
| 2024 | 3.13 | 官方 JIT,性能大幅提升 |
看完了它的发展史后,Python的特点有哪些呢?
1.易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2.易于阅读:Python 代码定义的更清晰。
3.易于维护:Python的 成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库:Python 的最大的优势之一是丰富的库,跨平台的,在 UNIX、Windows 和 Mac 兼容很好。
5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段。
6.可移植:基于其开放源代码的特性,Python 已经被移植(也就是使其工作)到许多平台。
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用 C 或 C++ 完成那部分程序,然后从你的 Python 程序中调用。
8.数据库:Python 提供所有主要的商业数据库的接口。
9.GUI 编程:Python 支持 GUI 可以创建和移植到许多系统调用。
10.可嵌入:你可以将 Python 嵌入到 C/C++ 程序,让你的程序的用户获得"脚本化"的能力。
Python环境搭建就自行去搭建吧,下面来学习python的基础语法。
1.Python标识符
在 Python 里,标识符由字母、数字、下划线组成。
所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
Python 中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。
以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
Python 可以同一行显示多条语句,方法是用分号 ; 分开
2.行和缩进
Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
在 Python 的代码块中必须使用相同数目的行首缩进空格数,建议你在每个缩进层次使用单个制表符或两个空格或四个空格, 切记不能混用。
好了,今天的学习就先到这儿吧,今天就仅仅了解了下Python的发展史以及一些基础语法,让我们明天继续!