飞翔飞翔
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • 学习路径
  • 第1章 认识Python

    • Python 历史与特点
    • Python 2 与 Python 3 的核心差异
    • 安装与运行 Python 2.7.18
    • 编码规范 PEP 8
  • 第2章 基础语法

    • 变量与对象
    • 数字类型
    • 字符串 str
    • Unicode 字符串
    • 运算符
    • 空值 None
  • 第3章 流程控制

    • if 条件语句
    • if-else 条件语句
    • if-elif-else 多分支
    • 条件表达式(三元运算符)
    • while 循环
    • for 循环
    • range 与 xrange
    • 循环控制:break、continue、pass
    • 循环 else 子句
  • 第4章 数据结构

    • 列表基础
    • 列表方法
    • 列表推导式
    • 元组
    • 字典基础
    • 字典方法
    • 字典循环技巧
    • 集合
    • 序列解包
    • 序列比较
  • 第5章 函数

    • 定义函数
    • 参数传递机制
    • 默认参数
    • 关键字参数
    • 可变参数
    • Lambda 表达式
    • 文档字符串
    • 函数对象
  • 第6章 模块与包

    • import 导入
    • 模块搜索路径
    • name 与主程序
    • 编译文件 .pyc 与 .pyo
    • 包结构
    • dir() 函数
  • 第7章 文件与IO

    • 打开与关闭文件
    • 文件读写方法
    • with 上下文管理器
    • 格式化输出:% 操作符
    • 格式化输出:str.format()
    • JSON 序列化
  • 第8章 面向对象

    • 类定义与实例化
    • init 构造方法
    • 类变量与实例变量
    • 方法调用与 self
    • 继承基础
    • 多重继承
    • 新式类与旧式类
    • 私有变量与名称改写
    • 属性装饰器 property
    • 类方法与静态方法
    • 魔术方法
    • 空类与数据记录
  • 第9章 异常处理

    • 异常类型
    • try-except
    • try-except-else-finally
    • 抛出异常 raise
    • 自定义异常
    • with 语句与上下文管理器
  • 第10章 迭代器与生成器

    • 迭代器协议
    • 生成器函数
    • 生成器表达式
    • itertools模块
  • 第11章 标准库精要

    • os模块
    • sys模块
    • datetime模块
    • re模块
    • json模块
    • collections模块
    • math与random模块
    • urllib2与网络请求
    • subprocess与命令执行
    • threading与并发
    • unittest与测试
    • 虚拟环境与包管理
  • 第12章 工程实践

    • 调试技巧
    • 性能分析
    • 文档与注释
    • 下一步学习

Python 历史与特点

从一门"业余项目"到主流语言

1989 年圣诞节期间,荷兰程序员 Guido van Rossum 在阿姆斯特丹的家中开始编写一个解释型语言的雏形。他的初衷很简单:创造一门既像 C 语言一样强大、又像 shell 脚本一样易用的语言。1991 年,第一个公开版本 0.9.0 发布,已经具备了类、函数、异常处理等核心机制。

这门语言的命名并非来自某种爬行动物,而是 Guido 当时痴迷的英国喜剧团体 Monty Python。这个轻松幽默的起点,似乎也预示了 Python 日后追求简洁、可读的设计理念。

版本演进的关键节点

年份版本意义
19910.9.0首个公开版本,已有模块、异常、函数
19941.0引入 lambda、map、filter、reduce
20002.0加入列表推导式、垃圾回收、Unicode 支持
20083.0不兼容的彻底重构,修正早期设计缺陷
20102.7Python 2 的最终功能版本
20202.7.18Python 2 的最后一个版本,正式停止维护

Python 2.7 之所以存在长达十年(2010–2020),是因为大量企业和开源项目依赖 Python 2 的代码库。它吸收了部分 Python 3 的特性(如 with 语句、set 字面量、str.format()),成为两个版本之间的"桥梁"。

Python 的核心特点

简洁优雅的语法。Python 用缩进来表示代码块,而非大括号。这看起来是约束,实则是解放——它强制程序员写出结构清晰的代码。一个典型的对比:在 C 语言中交换两个变量需要三行和一个临时变量,而在 Python 中只需 a, b = b, a。

解释型语言。Python 代码不需要编译成机器码,解释器逐行读取并执行。这意味着开发周期极短:修改代码后立刻运行,无需等待编译。代价是执行速度通常慢于 C/C++,但这对大多数应用来说并非瓶颈。

动态类型系统。变量没有固定类型,同一个名字可以在不同时刻绑定到整数、字符串或列表。x = 10 之后写 x = "hello" 完全合法。这带来了灵活性,但也要求程序员对数据类型保持清醒。

"自带电池"(Batteries Included)。标准库覆盖了文件操作、网络通信、正则表达式、数据库接口、GUI 开发等绝大多数日常需求。安装 Python 后,你几乎不需要额外下载任何东西就能完成一个完整项目。

跨平台。同一份 Python 代码可以在 Windows、macOS、Linux 上运行,无需修改。解释器会处理不同操作系统之间的差异。

多范式支持。Python 支持面向对象编程(类、继承、多态),也支持过程式编程(函数、全局变量),还支持函数式编程(lambda、高阶函数、生成器)。你可以根据问题选择最合适的风格。

为什么学习 Python 2.7

Python 2.7 已于 2020 年停止维护,官方不再提供安全补丁。学习它的主要价值在于:

  1. 维护遗留系统。许多企业服务器、嵌入式设备、科学仪器仍运行 Python 2.7 代码。
  2. 理解语言演进。Python 3 的许多设计决策(如 print 变成函数、str 统一为 Unicode)只有对比 Python 2 才能深刻理解。
  3. 阅读历史代码。GitHub 上仍有数百万行 Python 2 代码,掌握它能让你读懂这些项目的逻辑。

如果你从零开始新项目,应当选择 Python 3。但理解 Python 2 的遗产,会让你成为更全面的 Python 程序员。

下一页
Python 2 与 Python 3 的核心差异