人生苦短,我用 Python —— Life is short, you need Python

1、 Python 的起源

Python 的创始人为吉多·范罗苏姆(Guido van Rossum)

1、认识Python - 图1

  1. 1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC 语言的一种继承(感觉下什么叫牛人
  2. ABC 是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果
  3. 之所以选中 Python(蟒蛇) 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python’s Flying Circus)的爱好者
  4. 1991 年,第一个 Python 解释器 诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件

1.1 解释器(科普)

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器

编译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器

1、认识Python - 图2

  • 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++
  • 解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行

编译型语言和解释型语言对比

  • 速度 —— 编译型语言比解释型语言执行速度快
  • 跨平台性 —— 解释型语言比编译型语言跨平台性好

1.2 Python 的设计目标

1999 年,吉多·范罗苏姆向 DARPA 提交了一条名为 “Computer Programming for Everybody” 的资金申请,并在后来说明了他对 Python 的目标:

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

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

1.3 Python 的设计哲学

  1. 优雅
  2. 明确
  3. 简单
  • Python 开发者的哲学是:用一种方法,最好是只有一种方法来做一件事
  • 如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法

在 Python 社区,吉多被称为“仁慈的独裁者”

2、为什么选择 Python?

  • 代码量少
  • ……

同一样问题,用不同的语言解决,代码量差距还是很多的,一般情况下 PythonJava1/5,所以说 人生苦短,我用 Python

3、Python 特点

  1. 简单、易学、免费、开源:Python简单、易学。我们可以自由发布其复制版本,阅读、修改其源代码,将其(部分)用于新软件中。
  2. 解释型:Python是边解释边执行的,Python解释器会将源代码转换为中间字节码形式,然后将其解释为机器语言并执行。
  3. 可移植:Python解释器已被移植在许多平台上,Python程序无须经过修改就可以在多个平台上运行。
  4. 代码规范:Python所采用的强制缩进的方式,使得其代码具有极佳的可读性。
  5. 面向对象:与C++和Java等相比,Python以强大而简单的方式实现了面向对象编程。
  6. 胶水语言:标准版本的Python调用C语言,并可以借助C语言的接口驱动调用所有编程语言。
  7. 丰富的库:Python的标准库种类繁多,可以帮助处理各种工作,我们不需要安装就可以直接使用这些库。
  8. 动态类型:Python不会检查数据类型,在声明变量时不需要指定数据类型。

4、命名规则

  1. 区分大小写:Myname与myname是两个不同的标识符。
  2. 首字符可以是下画线(_)或字母,但不能是数字。
  3. 除首字符外的其他字符必须是下画线、字母和数字。
  4. 关键字不能作为标识符。
  5. 不要使用Python的内置函数作为自己的标识符。
    1. # 查看关键字
    2. import keyword
    3. print(keyword.kwlist)
    image.png
  • 模块名尽量短小,并且使用全部小写字母,可以使用下划线分隔多个字母。例如,game_main、game_register、bmiexponent都是推荐使用的模块名称。
  • 包名尽量短小,并且使用全部小写字母,不推荐使用下划线。例如,com.mingrisoft、com.mr、com.mr.book都是推荐使用的包名称,而com_mingrisoft就是不推荐的。
  • 类名采用单词首字母大写形式(即Pascal风格)。例如,定义一个借书类,可以命名为BorrowBook。
  • 模块内部的类采用下划线“_”+Pascal风格的类名组成。例如,在BorrowBook类中的内部类,可以使用_BorrowBook命名。
  • 函数、类的属性和方法的命名规则同模块类似,也是全部采用小写字母,多个字母间用下划线“_”分隔。
  • 常量命名时采用全部大写字母,可以使用下划线。
  • 使用单下划线“_”开头的模块变量或者函数是受保护的,在使用import*from语句从模块中导入时这些变量或者函数不能被导入。
  • 使用双下划线“__”开头的实例变量或方法是类私有的。