欢迎来到赛兔子家园

1.3 Python优缺点

Python是什么?

  Python 是荷兰人 Guido van Rossum (吉多·范罗苏姆,中国程序员称其为“龟叔”)在 1990 年初开发的一种解释型编程语言。

  Python 语言是在 ABC 语言的基础上发展而来,其设计的初衷是成为 ABC 语言的替代品。ABC 语言虽然是一款功能强大的高级语言,遗憾的是,由于 ABC 语言不开放的原因,导致它没有得到普及应用。基于这个考虑,Guido 在开发 Python 之初就决定将其开源。
  Python 中不仅添加了许多 ABC 语言没有的功能,同时,还为其设计了各种丰富而强大的库,利用这些 Python 库,程序员可以把使用其它语言制作的各类模块(尤其是C语言和 C++)很轻松地“黏连”在一起,因此 Python 又常被称为“胶水”语言。

  注意:这里所说的库和模块,简单地理解就是一个个的源文件,每个文件中都包含可实现各种功能的方法(也可称为函数)。

  从整体上看,Python 语言最大的特点就是简单,该特点主要体现在以下两个方面:

  • Python 的语法非常简洁明了,即便是非软件专业的初学者,也很容易上手。
  • 和其它编程语言相比,实现同一个功能,Python 语言的实现代码往往是最短的。

  错过了 C/C++ 的 PC 时代,又错过了 Java 的互联网和智能手机时代,你还想错过 Python 的人工智能和大数据时代吗?Python 正位于软件产业的第四次风口之上,把握好风口,你就能飞起来。

  Python 是一种开源的解释型脚本编程语言,它之所以非常流行,主要有三点原因:

  • Python 简单易用,学习成本低,看起来非常优雅干净;
  • Python 标准库和第三库众多,功能强大,既可以开发小工具,也可以开发企业级应用;
  • Python 站在了人工智能和大数据的风口上,站在风口上,猪都能飞起来。
Python的优点

1)  语法简单

  和传统的 C/C++、Java、C# 等语言相比,Python 对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。我来举两个典型的例子:

  • Python 不要求在每个语句的最后写上分号,当然写也没错;
  • 定义变量时不需要指明类型,甚至可以给同一个变量赋值不同类型的数据。

  上述两点也是 PHP、JavaScript、MATLAB 等常见脚本语言都具备的特性。Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特点的编程语言。

  伪代码(Pseudo Code)是一种算法描述语言,它介于自然语言和编程语言之间。编写伪代码的目的是为了使被描述的算法可以更容易地以任何一种编程语言实现,比如 C、C++、Java 等。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似于自然语言。

  为什么说简单就是杀手锏?一旦简单了,一件事情就会变得很纯粹;我们在开发 Python 程序时,可以专注于解决问题本身,而不用顾虑语法的细枝末节。在简单的环境中做一件纯粹的事情,那简直是一种享受。

2) Pytho是开源的

 开源,也即开放源代码,意思是所有用户都可以看到源代码。

 Python 的开源体现在两方面:

  2.1、程序员使用 Python 编写的代码是开源的。

  2.2、Python 解释器和模块是开源的。

    官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多也就越健壮。

3)、Python是免费的

  开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python 就是这样一种语言,它既开源又免费。

  用户使用 Python 进行开发或者发布自己的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。

4)、Python是高级语言

  这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,例如: Python 会自动管理内存(需要时自动分配,不需要时自动释放)。

  高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然。

5)、Python是解析型语言,能跨平台

  解释型语言一般都是跨平台的(可移植性好)。

6)、Python是面向对象的编程语言

  面向对象(Object Oriented)是大多数“现代”语言(即第三代编程语言)都具备的特性,否则在开发中大型程序时会捉襟见肘。Python 虽然支持面向对象,但它并不强制你使用这种特性。Java 是典型的面向对象的编程语言,它强制必须以类和对象的形式来组织代码。除 Python 和 Java 外,C++、C#、PHP、RuBy、Perl 等,也都支持面向对象的特性。

  除了面向对象的编程语言外,还有一种面向过程的编程语言,其中最典型的代表就是 C 语言。

7)、Python可扩展性强

  Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富、强大的库/模块,这些库/模块覆盖了文件操作、图形界面编程、网络编程、数据库访问等绝大部分应用场景。

  值得注意的是,这些类库的底层代码不一定都是 Python,还有很多 C/C++ 的身影。

  比如当需要一段关键代码运行速度更快时,就可以使用 C/C++ 语言实现,然后在 Python 中调用它们。Python 能把其它语言“粘”在一起,所以被称为“胶水语言”。

  Python 依靠其良好的扩展性,在一定程度上弥补了运行效率慢的缺点。

Python的缺点

  除了上面提到的各种优点,Python 也是有缺点的。

1)、运行速度慢

  运行速度慢是解释型语言的通病,Python 也不例外。
  Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节。这个代价也是很大的,Python 要多做很多工作,有些工作是很消耗资源的,比如管理内存。
  Python 的运行速度几乎是最慢的,不但远远慢于 C/C++,还慢于 Java。
  但是速度慢的缺点往往也不会带来什么大问题。首先是计算机的硬件速度运来越快,多花钱就可以堆出高性能的硬件,硬件性能的提升可以弥补软件性能的不足。
  其次是有些应用场景可以容忍速度慢,比如网站,用户打开一个网页的大部分时间是在等待网络请求,而不是等待服务器执行网页程序。服务器花 1ms 执行程序,和花 20ms 执行程序,对用户来说是毫无感觉的,因为网络连接时间往往需要 500ms 甚至 2000ms。

2)、代码加密困难

  不像编译型语言那样,源代码会被编译成可执行程序(这个编译过程就相当于对源码加密),对于 Python 来说是直接运行源代码,因此对源码加密是比较困难的。

posted on 2024-04-03 11:20  赛兔子  阅读(6)  评论(0编辑  收藏  举报

导航