认识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)诞生。这时就已经存在了带继承的类、异常处理、函数和核心数据类型listdictstr

1994年1月Python达到了版本1.0。这个发行版主要新特征是包括了函数式编程工具lambdamapfilterreduce。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。

参考(以下顺序不分先后):

Python维基百科

解释型语言

编译型语言

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~