认识Python
本篇文章由我归纳总结而来,为想要了解学习 Python 的朋友提供参考。大部分内容参考维基百科
简介#
Python 是一种广泛使用的解释型、高级和通用的编程语言。Python 支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。
Python 是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。
Python 的起源#
诞生#
由于吉多・范罗苏姆 (Guido van Rossum) 参与设计的 ABC 语言没有成功,他在 1989 年的圣诞节决定开发一个新的解释型语言作为 ABC 语言的替代者。在他看来 ABC 语言的失败的原因是其非开放的,他决心在 Python 中避免这个错误,后来由于他的开放形成了庞大的 Python 社区。之所以取名为 Python,是因为他非常喜欢 BBC 电视剧中的蒙提・派森的飞行马戏团(Monty Python’s Flying Circus)。
发展#
1991 年 2 月第一个 Python 解释器 (标记为版本 0.9.0) 诞生。这时就已经存在了带继承的类、异常处理、函数和核心数据类型 list
、dict
、str
等
1994 年 1 月 Python 达到了版本 1.0。这个发行版主要新特征是包括了函数式编程工具 lambda
、map
、filter
和 reduce
。Python 1.4 增加了受 Modula-3 启发的关键字参数和对复数的内建支持,还包含采取名字修饰的一种基本形式 [数据隐藏。
2000 年 10 月 16 日 Python 2.0 发布。增加了列表推导式,这是从函数式编程语言 SETL 和 Haskell 中引入的。它还向垃圾收集系统增加了环检测算法,并且支持 Unicode。Python 2.1 支持了嵌套作用域,就像其他静态作用域语言一样。Python 2.2 的重大革新是将 Python 的类型 (用 C 写成) 和类 (用 Python 写成) 统一入一个层级,使得 Python 的对象模型成为纯粹和一致的面向对象的模型;还增加了迭代器,受 CLU 和 Icon 启发的生成器,和描述器协议。Python 2.4 加入了集合数据类型,和函数修饰器。Python 2.5 加入了 with
语句。
Python 3.0 于 2008 年 12 月 3 日发布,它对语言做了较大修订而不能完全后向兼容。Python 3 发行包括了 2to3
实用工具,它(至少部分的)自动将 Python 2 代码转换成 Python 3 代码。Python 3 的很多新特性后来也被移植到旧的 Python 2.6/2.7 版本中。
Python 2.7 的产品寿命结束日期最初设定为 2015 年,出于对大量的现存代码不能前向移植到 Python 3 的关切而延期至 2020 年。随着 Python 2 的产品寿命结束,只有 Python 3.8 和后续版本仍被完全支持。
在 2020 年 12 月,活跃的 Python 核心开发者选举 Barry Warsaw、Brett Cannon、Carol Willing、Pablo Galindo Salgado 和 Thomas Wouters 为 2021 年度 “掌控委员会” 的五位成员来领导这个项目。
解释型语言与编译型语言#
区别#
高级语言设计的程序必须经过 “翻译” 成机器语言以后才能被机器执行。“翻译” 的方法有两种,一种是解释,一种是编译。两种方式的区别在于 “翻译” 时间点不同,解释型语言编写的程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。编译型语言编写的程序在执行之前需要进行的编译,把程序编译成机器语言的文件,运行时不需要重新 “翻译”,直接使用编译的结果就行了。
对比#
- 速度:编译型语言比解释型语言执行速度快
- 跨平台性:解释型语言比编译型语言跨平台性好
特点#
完全面向对象的语言#
- 在 Python 中一切皆对象
- 完全支持继承、重载、多重继承
- 支持重载运算符,也支持泛型设计
拥有一个强大的标准库#
Python 语言的核心只包含 数字、字符串、列表、字典、文件 等常见类型和函数,而由 Python 标准库提供了 系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理 等额外的功能
Python 社区#
社区提供了数量庞大的第三方模块,使用方式与标准库类似。它们的功能覆盖 科学计算、人工智能、机器学习、Web 开发、数据库接口、图形系统 等多个领域
为什么选择 Python#
Life is short, you need Python。