学习一门语言——Python(自学版)

学习一门语言——Python(自学版)

学习一门语言首先要了解它的发展历史,让我们先来了解一下Python的发展历史吧。

一、诞生背景(1989)

创始人:吉多・范罗苏姆(Guido van Rossum),荷兰程序员。 1989 圣诞假期,Guido 在荷兰 CWI 国家数学和计算机研究所,为打发假期,基于 ABC 语言开发新脚本语言。 取名 Python:源自他喜爱的喜剧《蒙提・派森》(Monty Python),本意希望语言简单、有趣、易读。

设计核心初衷

  1. 替代复杂难用的 Shell 脚本与 C;
  2. 解决 ABC 语言封闭、扩展性差的缺陷;
  3. 强调可读性、简洁、可移植

二、初代版本:Python 0.x 原型期

  • Python 0.9.0(1991 年 2 月)首个公开版本,已具备现代 Python 核心骨架:
    • 类、继承、异常处理;
    • 函数、动态类型;
    • if/for/while基础控制流;
    • 模块化编程(import); 标志性特色:缩进代替大括号,从这一版本定型。
  • 0.9.x 小版本完善列表、字典、字符串基础数据结构。

三、Python 1.x 稳定普及期(1994–2000)

  1. Python 1.0(1994)正式稳定发行,新增关键能力:
    • 函数式编程工具:lambdamapfilterreduce
    • 模块系统、类完整继承;
    • 支持跨平台(Unix、Windows、Mac)。
  2. 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 致命缺陷

  1. 两套字符串:str(字节)、unicode(文本),极易编码报错;
  2. 整数除法3/2=1不符合直觉;
  3. 语法冗余、标准库设计混乱。

2020 年 1 月 1 日,Python 2 正式停止所有维护,全面淘汰。

五、Python 3.x 现代化重构(2008–至今,当前主流)

1. Python 3.0(2008.12):不兼容的彻底重构

Guido 下定决心打破兼容,根治 2.x 历史包袱,核心改动:

  1. 字符串统一:str= Unicode 文本,bytes单独表示二进制;
  2. 除法修正:3/2=1.5,整数整除用3//2
  3. print改为内置函数print(),不再是语句;
  4. 移除xrange,统一为range
  5. 异常语法、输入函数input()重构;
  6. 统一编码默认 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 圣诞假期开发
19910.9.0公开首发,缩进语法成型
19941.0稳定正式版,函数式特性
20002.0Unicode、垃圾回收、统治行业 20 年
20083.0重构不兼容,解决编码痛点
20153.5async/await、类型注解
2020Python2 停止维护全面进入 3.x 时代
20243.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的发展史以及一些基础语法,让我们明天继续!