跳至主要內容

Python 简介

undefined...PythonPython大约 6 分钟

Python程序设计语言诞生于1989年,创始人Guido van Rossum(吉多·范罗苏姆)创立了新的脚本语言(Script Language),发展至今已有20多年的历史。Python是一种高级语言,支持面向对象。语言本身能跨越平台,无论是Linux、Mac还是Windows都能畅行无阻。

Python 是一种简单易学并且结合了解释性、编译性、互动性和面向对象的脚本语言。Python提供了高级数据结构,它的语法和动态类型以及解释性使它成为广大开发者的首选编程语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

优势与不足

优势

1. 简单易学可扩展:

阅读一个良好的Python程序就像欣赏一篇优美的文章一样,尽管它的要求非常严格,如强制缩进可提高代码的可读性。Python的这种伪代码本质使得我们可以更多地关注于解决问题的逻辑而非搞明白语言本身,如我们无需过多关注诸如内存管理这样的底层细节。

如果我们希望一段关键代码运行的更快(C要比Python快50倍以上)或希望某些算法不公开,可以把部分程序用C或C++语言编写,然后在Python程序中进行调用。

2. 免费开源可移植:

Python是FLOSS(自由/开放源码软件)之一,也就是说我们可以自由地发布这个软件的拷贝、阅读它的源代码 、对它做改动、把它的一部分用于新的自由软件中。

由于其开源本质,Python可移植在许多计算机平台上,如Windows、Linux等。

3. 面向对象:

Python既支持面向过程的编程也支持面向对象的编程。

在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。

在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其它的编程语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程,而封装、继承和多态三大特性则是它成"神"的关键。

4. 动态语言:

动态语言,又称为弱类型语言,是指变量在创建时不需声明类型,具体类型根据指向的内存单元中的数据类型决定,即指向什么类型就是什么类型。

相反,静态语言(强类型语言),定义变量时需要声明类型,变量指向的内存单元可存放的数据类型固定。

例如,Python中定义一个整数变量为num = 10,而在Java中则为int num = 10;。

5. 解释型语言:

编译型语言,如C++写的程序可以从源文件(C++语言)转换到一个你的计算机使用的语言,即二进制代码(0和1)。这个过程通过编译器和不同的标记以及选项完成。当我们运行程序的时候,连接转载器软件把我们的程序从硬盘复制到内存中并且运行。

而Python语言写的程序不需要编译成二进制代码。我们可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器码并运行。由于只需要把我们的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得Python程序更加容易移植。

6. 丰富的库:

包括Python自带的标准库和第三方库。

其中Python的标准库可以帮助我们处理各种工作,包括正则表达式、文档生成、线程、数据库、HTML、GUI等。这被称作Python的“功能齐全”理念。

除了标准库以外,Python也支持安装第三方库,如wxPython、Twisted和Python图像库等。

7. 规范的代码:

Python采用强制缩进的方式使得代码具有较好可读性。Python的作者设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。

其中很重要的一项就是Python的缩进规则。一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定(而C语言是用一对大括号{}来明确的定出模块的边界,与字符的位置毫无关系)。通过强制程序员们缩进(包括iffor和函数定义等所有需要使用模块的地方)

缺点

1. 执行效率慢。

Python 整体性能缓慢,有限的线程和多处理能力是其未来发展的主要障碍。

Python长期以来一直重视编程的易用性而不是运行时的速度。当通过使用C或C++编写的高速外部库(如Numpy和Numba)在Python中完成如此多的性能密集型任务时,你会发现Python重视编程的易用性也是一种不错的选择。但是尽管如此,Python的开箱即用的性能速度依然落后于其他语言,比如说具有同样简单语法的Nim和Julia,却可以被编译为机器代码,具有更高的性能优势。

Python无法全面利用多核处理器是其长久以来的问题,它确实具有线程功能,但它的线程功能是局限于单个核心的。虽然Python可以使用多进程,但是调度和同步这些子进程的结果并不总是有效

2. 没有官方打包

即使在Python诞生30年后,Python依然没有很好的方法来生成可执行文件(exe程序等)我们只能通过第三方工具解决。而且用起来比较麻烦。

3. 代码不能加密

如果要发布你的Python程序,实际上就是发布源代码。

这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

4. 构架选择太多

Python构架选择太多,没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。

不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。

上次编辑于:
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.8