Python编程语言入门指南

发表时间: 2024-06-08 16:44

起源

Python由荷兰国家数学与计算机科学研究中心的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python在各个编程语言中比较适合新手学习,Python解释器易于扩展,可以使用C、C++或其他可以通过C调用的语言扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

——引自【百度百科】

特点

1 高级

相比在机器代码级别的编程语言,Python属于高级语言,属于解释型语言,不需要编译。有自己独特的数据结构,如:列表(大小可变数组)、字典(哈希表)等。

Python集众多编程语言的大成:

  • Python由C语言开发而来,自然具备C语言的众多特性。同时降低了C/C++对内存管理上的限制;
  • Python是解释型语言,与Perl、Java、Tcl、JavaScript类似。
  • Python是脚本语言,功能又比Linux Shell强大。
  • Python的正则表达式,基于Perl语言的正则引擎进行开发,同时摒弃了晦涩的符号引起的阅读不便。
  • Python面向对象借鉴Java,比其更加简介与纯粹使用Java相比提供更快速的开发环境。
  • 用Java开发的Python解释器是Jython。Jython的脚本环境中,可以在Jython环境中可以熟练的操作Java对象,Java可以与Python对象进行交互,可以访问Java标准类库。
    • Jython运行在JVM;
    • Jython拥有Java包与类库的能力;
    • Jython为Java开发环境提供脚本引擎;
    • Jython能够很容易的测试Java类库;
    • Jython提供访问Java原生异常处理的能力;
    • Jython集成JavaBeans特性和内省能力;
    • GUI开发人员可以访问Java的AWT/Swing库;
    • Jython可以使用Java的垃圾收集器。
  • Python效仿Ruby,也有Web应用框架Django、Turbogears等(Ruby有Web框架Rails)。不过Ruby、Smalltalk完全面向对象,Python还有多种混合编程范式。
  • Python从Tcl借鉴了脚本语言的扩展超越原始设计的能力。Tcl还包括Tk图像工具包,可以协同开发图形用户界面应用程序。Python将Tk移植到Python的Tkinter中。Python又因为有类、模块、包的机制让Python的使用更加得心应手。
  • Python从Lisp、haskell语言借鉴函数化编程(Functional Programming,FP)。Python的列表解析特性就是从Haskell移植而来。Python的lambda、map、filter、reduce都是从Lisp中仿造而来。
  • Python的面向对象没有效仿JavaScript的原型系统(Prototype)。

2 面向对象

面向对象编程支持将特定的行为、特性以及和/或功能与它们要处理或所代表的数据结合在一起。Python不仅仅是一门面向对象语言,还融合了如果Lisp、Haskell这类函数语言特性。

3 可升级

同样作为脚本,Python的脚本与Linux Shell不同,可以不断完善与重用。Python提倡简洁的代码设计、高级的数据结构和模块化的组件,这些特点可以提升项目的范围和规模同时,确保灵活性、一致性并缩短必要的测试时间。

4 可扩展

Python代码可以分离为多个文件或模块加以组织管理。可以从一个模块中选取代码,从另一个模块中读取属性。对所有模块,Python的访问语法相同。

Python中的扩展库可以通过其他高级语言进行重写。扩展后的接口与纯Python模块接口一致,这些扩展给代码的性能带来显著提升。

  • Python标准实现由C语言实现,可以直接使用C/C++编写扩展;
  • Python用纯Java编写的解释器是jython,使用Java编写其扩展。Jython在Python2.7后就没有升级,Jython已经不支持Python3.x。
  • 关于jython从2015年后,就不再更新。据说主要开发人员都被微软挖走去做IronPython。虽然IronPython也没能逃脱被放弃的命运。目前有一个py4j 的项目在活跃开发状态。
  • IronPython是针对.NET/Mono平台的C#实现。使用C#/VB.NET扩展IronPython。
  • Stackless是支持巨量线程的Python实现。Python的函数调用都会产生一个C函数调用。这意味着同事产生的函数调用是有限制的,因此Python难以实现用户级的线程库和复杂递归应用。一旦超越这个限制,程序就会崩溃。在无穷函数调用、巨大数量的线程应用场景下,需要使用Stackless。

5 可移植性

由于Python用C编写,C的可移植性,Python可以运行在任何带有ANSI C编译器的平台上。如果Python开发的是通用软件,则稍事修改或者原封不动就可以运行在其他平台。这种移植性,既适用于架构也适用于不同操作系统。

6 易学

Python关键字少、结构简单、语法清晰。学习者可以轻松上手。

7 易读

Python与其他高级语言差异是它没有访问变量、定义代码库、进行模式匹配的命令式符号,如:$、;、~等。

8 易维护

由于代码易读,代码同样易维护。也不需要复杂的参考手册才能读懂代码逻辑。

9 健壮性

针对错误,Python提供“安全合理”的退出机制,让维护人员能够掌控局面。

一旦Python由于出错崩溃,解释程序会转出一个“堆栈跟踪”,里面有可用到的全部信息,如:奔溃原因、代码所在文件、行数、行数调用等。

10 高效的快速原型开发工具

Python与BASIC等脚本型语言的区别,在于Python有许多面向其他系统的接口,本身足够强大,本身足够强壮,可用使用Python开发整改系统的原型。

Python开发了众多扩展库,几乎任何程序都可能找到现有的库。

11 内存管理器

与C/C++需要开发人员负责内存管理不同,Python的内存由Python进行管理,不需要开发人员管理内存。开发人员可以专注于开发目标。

12 解释性和(字节)编译性

Python是解释型语言,没有编译环节。程序运行时,不是本地机器码运行,纯粹的解释型语言通常比编译型语言运行得慢。Python实际上是字节编译的,其结果是一种近似机器语言的中间形式,这种优化不仅改善了Python的性能,同时使它保持了解释型语言的优点。

Python原文件为.py扩展名;

当源文件被解释器加载或显式地进行字节编译时,会被编译成字节码。由于调用方式不同,源文件会被编译成带有.pyc、pyo扩展名文件。

版本

起源和早期版本0.x阶段

Python的起源可以追溯到1989年,当时荷兰的程序员Guido van Rossum在圣诞节期间着手创造了它。Python的设计理念显著地突出了代码的可读性和简洁性,它使用缩进来定义代码块,并提供了高级的数据结构和动态类型等特性,这些特点使得Python成为了一种备受欢迎的编程语言。

Python 1.x版本

Python 1.0在1994年正式发布,这一版本为Python语言奠定了坚实的基础。Python 1.x系列版本引入了众多核心特性,如对象封装、继承以及异常处理等。然而Python 1.x版本也存在一些局限性,比如字符编码尚未统一,以及对面向对象编程的支持尚不够完善等。这些局限性在后续的版本中得到了逐步的改进和完善。

Python 2.x版本

Python 2.0在2000年的发布标志着Python语言迈向了一个全新的发展阶段。Python 2.x系列版本对语言进行了显著的改进和扩展,引入了诸如列表推导式、垃圾回收机制以及对Unicode的全面支持等特性。这些更新使得Python 2.x得到了广泛的认可和应用,同时也赢得了庞大的社区支持,成为Python发展历史中的一个重要里程碑。

Python 3.x

Python 3.0于2008年问世,带来了一系列不兼容的更新,其中包括对print语句的修改、字符串编码的统一以及整数除法行为的优化等。这些变革旨在提升Python语言的一致性、明确性和可维护性,为用户带来更佳的编程体验。

在Python 3.x系列的后续版本中,持续不断地引入了众多新特性和改进,这些更新显著增强了Python的功能性和易用性。

Python 3.5:版本引入了异步I/O支持和类型提示,为并发编程和代码类型安全提供了强大的支持。

Python 3.6:版本则增加了字符串插值(f-string)和异步生成器,进一步提升了字符串处理的灵活性和异步编程的效率。

Python 3.7:版本优化了数据类和上下文变量,为面向对象编程和上下文管理提供了更加便捷的工具。

Python 3.8:版本更是引入了赋值表达式(即“海象运算符”)、更灵活的函数参数以及更多的性能优化等创新特性,进一步提升了Python在性能、代码简洁性和可读性方面的表现。

Python 3.9:引入了字典合并操作符、类型提示的灵活性改进、异步编程的优化等特性。

Python 3.10:则引入了结构化模式匹配、改进的错误消息和异常处理、静态类型检查的增强等。这些新特性提高了Python的表达能力、可读性和健壮性。

Python 3.11:和未来版本的发展计划:Python社区正在积极规划和开发Python 3.11及未来的版本。该版本目标是提供更好的性能优化、改进的内存使用、更强大的静态类型支持等。

未来的Python版本将继续关注性能、并发、安全、可维护性等方面的改进。这些持续的更新和改进,使得Python 3.x在性能、并发处理、类型检查等方面不断向前迈进,越来越多的项目和库开始兼容并支持Python 3.x;同时,Python社区也不断地提供迁移工具和指引,以协助开发者顺利过渡到Python 3.x,Python 3.x已然成为Python的主流版本,其在各行各业的应用和支持也日益广泛。

参考文献

[1] python 版本演化历史以及主要版本特点,
https://zhuanlan.zhihu.com/p/697290758

[2] Python版本的选择和区别-Day1,
https://www.cnblogs.com/szk5043/articles/8418249.html