『无为则无心』Python基础 — 1、Python语言介绍

1、Python语言介绍

维基百科中介绍:

Python的创始人为吉多·范罗苏姆。1989年的圣诞节期间,吉多为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并获取了非常好的效果,完美结合了C和其他一些语言的习惯。

在1991 年,第一个 Python 解释器 诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件。

之所以选中Python(蟒蛇)作为编程语言的名字,是因为他是BBC电视剧《蒙提派森的飞行马戏团》(Monty Python’s Flying Circus)的爱好者。

2、为什么要学习Python

Python可以说是编程语言中罕见的既简单又强大的一门语言,Python语言简洁,语言优雅,功能强大,使用Python,你只需要专注于问题的解决方案,而不是苦恼于编程语言的语法和结构。Python的发明者吉多·范罗苏姆Guido van Rossum(龟叔),给Python贴的标签是“简洁”和“优雅”,即对于编程语言的新手都能迅速上手使用Python语言。

Life is short , you need Python. :人生苦短,我用Python。

3、Python语言的优缺点

(1)优点

  • Python是一种解释型语言,也就是说用Python写完的代码,不需要进行编译,直接就能够在解释器中执行的语言。
  • Python 是完全面向对象的语言(同Java)。
    • 函数、模块、数字、字符串都是对象,在 Python 中一切皆对象。
    • 完全支持继承、重载、多重继承。
    • 支持重载运算符,也支持泛型设计。
  • Python 拥有一个强大的标准库。
    Python 语言的核心只包含 数字、字符串、列表、字典、文件 等常见类型和函数,而由 Python 标准库提供了 系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理 等额外的功能。
  • Python 社区提供了大量的第三方模块。
    使用方式与标准库类似。它们的功能覆盖 科学计算、人工智能、机器学习、Web 开发、 爬虫程序、自动化运维、大数据(数据清洗)、云计算、图形系统多个领域。
  • Python 是交互式语言:
    这意味着,您可以在 Python 提示符 >>> 后直接执行代码。互动模式的支持,您可以从终端输入执行代码并获得结果的语言,以互动的形式进行测试和调试代码片断。
  • 易于学习:Python有相对较少的关键字,结构简单,明确定义的语法,学习起来更加简单。
  • 易于阅读:Python代码定义的更清晰。
  • 易于维护:Python的成功在于它的源代码是相当容易维护的。
  • 可移植:基于其开放源代码的特性,Python已经被移植到许多平台。
  • 可扩展:如果你需要一段运行很关键的代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • 可嵌入: 你可以将Python嵌入到C/C++程序,让你程序的用户获得"脚本化"的能力。

(2)缺点

  • Python 的执行速度不够快
    相比于比 Java、C、C++ 等程序,Python 的运行效率要稍微慢些。不过,这也不是一个很严重的问题,一方面,网络或磁盘的延迟,会抵消掉部分 Python 本身消耗的时间;另一方面,因为 Python 特别容易和 C 结合起来,因此,我们可以通过分离一部分需要优化速度的应用,将其转换为可编译的语言作为扩展,并在整个系统中使用 Python 脚本将这部分应用连接起来,以提高程序的整体效率。
  • Python 的 GIL 锁限制并发
    Python 的另一个大问题是,对多处理器支持不好。GIL 是指 Python 全局解释器锁(Global Interpreter Lock),当 Python 的默认解释器要执行代码文件时,都需要先申请这个锁。
    GIL锁的目的是确保每个进程中只有一个线程运行,多个进程之间不会互相影响。这意味着,一个进程里只有一个GIL锁,线程只能拿到GIL锁才能运行。所以python多线程的假的,甚至就几乎等于Python是个单线程的程序。
    不过,我们也可以使用多进程的架构来提高程序的并发,也可以选择不同的 Python 实现来运行我们的程序。
  • 源代码加密困难
    因为Python 是解释性语言,所以它的源码都是以明文形式存放的。Python 直接运行源程序,因此对源代码加密比较困难。如果项目要求源代码必须是加密的,那么我们一开始就不应该选择用Python来去实现。

总而言之,作为一种编程语言,Python在兼顾质量和效率方面有很好的平衡,尤其对新手而言,Python是一种十分友好的语言。

4、Python语言的设计哲学

为了更好的了解Python哲学理念及设计思想,我们可以先在任何一个Python交互解释器中输入import this命令(如命令行shell,IDEL中)。就会出现Python的一个彩蛋,描述了一系列Python的设计原则,阅读一下这些文字,对于我们深入了解Python有许多帮助。

python
>>>  import this

Beautiful is better than ugly.
# 优雅胜于丑陋(Python 以编写优美的代码为目标)

Explicit is better than implicit.
# 明确胜于含糊(优美的代码应当是明了的,命名规范的,风格相似的)

Simple is better than complex.
# 简单胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

Complex is better than complicated.
# 复杂胜于繁琐(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

Flat is better than nested.
# 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

Sparse is better than dense.
# 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

Readability counts.
# 可读性很重要(优美的代码是可读的)

Special cases aren't special enough to break the rules.
Although practicality beats purity.
# 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

Errors should never pass silently.
Unless explicitly silenced.
# 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写except:pass风格的代码)

In the face of ambiguity, refuse the temptation to guess.
# 当存在多种可能,不要尝试去猜测

There should be one-- and preferably only one --obvious way to do it.
# 而是尽量找一种,最好是唯一的一种明显的解决方案(如果不确定,就用穷举法)

Although that way may not be obvious at first unless you're Dutch.
# 虽然这种方式开始时并不容易,因为你不是 Python 之父(这里的Dutch是指Guido)

Now is better than never.
Although never is often better than *right* now.
# 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
# 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

Namespaces are one honking great idea -- let's do more of those!
# 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

Guido van Rossum一定是个有趣的人,能将设计思想展现在python解释器中,在“hello world”程序开始之前,展现他的一番人生哲学。在 Python 社区,吉多也被称为“仁慈的独裁者”。

总结两点:

  • Python 开发者的哲学是:用一种方法,最好是只有一种方法来做一件事(其他语言做一件事可能会有很多种方法,这样的语言非常灵活,但是对初学者不太友好)。
  • 如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。

总体概括Python的设计哲学就是:优雅、明确、简单

5、Python语言的设计目标

1999 年,Guido van Rossum向 DARPA 提交了一条名为 “Computer Programming for Everybody” 的资金申请,并在后来说明了他对 Python 的目标:

  • 一门简单直观的语言并与主要竞争者一样强大。
  • 开源,以便任何人都可以为它做贡献。
  • 代码像纯英语那样容易理解。
  • 适用于短期开发的日常任务。

这些想法中的基本都已经成为现实,如今Python 已经成为一门流行的编程语言。

参考:

posted @ 2021-06-19 22:38  繁华似锦Fighting  阅读(495)  评论(0编辑  收藏  举报