(一)编程语言和Python语言介绍
(1)编程语言的分类
(1)机器语言
-
什么是机器语言?
-
机器语言是计算机可以理解的语言,是直接操作硬件的语言。就是计算机可以听懂的语言。
-
由于计算机基于电工作,电频有高低电频之分,即高电频和低电频(0和1)
-
计算机可以理解的就是二进制的指令(0/1),所有机器语言就是直接用二进制进行编程,就是机器语言是直接对硬件进行操作的。
-
机器语言属于低级语言,需要深入了解计算机的硬件细节。
-
-
什么是机器指令
- 机器指令是用二进制代码0/1描述的指令,直接控制计算机的硬件。
- 计算机内容是基于二进制指令进行工作的,这使得机器语言成为直接与硬件交互的基础。
-
如何用机器语言编写程序
- 编程人员要首先熟记所用计算机的全部指令代码以及代码的含义
- 然后在编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。
- 这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。
- 而且,编出的程序全是些0和1的指令代码,直观性差,不便阅读和书写,还容易出错,且依赖于具体的计算机硬件型号,局限性很大。
- 除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
-
机器语言的优缺点
- 优点:执行效率最高。编写的程序可以直接被计算机无障碍理解、运行、执行效率高。
- 缺点:开发效率低、跨平台性差、学习成本大。
-
存储单位
-
单位换算公式:
1024 bytes = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB
1024 TB = 1 ZB
-
(2)汇编语言
-
什么是汇编语言
- 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
- 它同样需要编程者将每一步具体的操作用命令的形式写出来。
- 汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。
- 例如移动、自增
- 因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。
-
汇编语言的优缺点
-
优点:
-
执行效率高:相对于机器语言,使用英文标签编写程序较为简单,执行效率高。
-
操作灵活:能够完成一些高级语言难以实现的操作。
-
可执行文件小:生成的可执行文件相对较小,执行速度快。
-
-
缺点:
- 开发效率低:仍然直接操作硬件,开发效率仍较低。
- 复杂度高:源程序冗长、复杂,容易出错。
- 跨平台性差:与机器语言一样,依赖具体硬件,跨平台性差。
-
(3)高级语言
- 什么是高级语言
- 从人的角度出发,以人类可读的字符编写程序
- 而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道的
- 此处的高级指的是高层、开发者无需考虑硬件细节
- 与低级语言相比,高级语言更贴近人类语言,使开发者无需考虑硬件细节,提高了开发效率。
- 但正因为高级语言离硬件较远,更贴近人类语言,执行效率相对较低。
- 从人的角度出发,以人类可读的字符编写程序
- 高级语言人类可以理解,但是计算机需要通过翻译才能理解,所以执行效率低于低级语言。
-
高级语言的分类
- 按照翻译方式的不同,高级语言又被分为:
- 编译型语言
- C、C++、C#、JAVA
- 解释型语言
- Python、Go、PHP
- 编译型语言
- 按照翻译方式的不同,高级语言又被分为:
-
什么是编译型语言
编译型:
- 编译型语言将整篇源程序一次性翻译成目标代码,然后生成可执行文件。
- 修改源代码后,需要重新编译整个程序。虽然执行效率较高,但开发效率相对较低,跨平台性也较差。
类比:
- 编译型语言就像是你拿到一篇文章,不是逐段翻译,而是交给翻译软件,整篇文章进行翻译
- 如果中间某段话出错被修改,再次拿到文章也是进行整段文章翻译
优点:
- 执行效率高
- 编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(即机器语言)
- 因此其目标程序可以脱离其语言环境独立执行,使用比较方便,执行效率较高。
缺点:
- 开发效率低
- 应用程序一旦需要修改,必须先修改源代码,然后重新编译、生成新的目标文件才能执行
- 而在只有目标文件而没有源代码,修改会很不方便。
- 所以开发效率低于解释型
- 跨平台性差
- 编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到不同的平台使用,针对不同的平台必须重新编译,即跨平台性差。
现在大多数的编程语言都是编译型的。
编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。
大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术。
C、C++、Ada、Pascal都是编译实现的
-
什么是解释型语言
解释型:
- 解释型语言逐句翻译源程序成中间代码,由解释器逐句执行。
- 修改源代码后,不需要重新编译整个程序,直接执行即可。
- 执行效率较低,但开发效率高,且具有较强的跨平台性。
类比:
- 编译型语言就像是你拿到一篇文章,不是整篇文章翻译,而是交给翻译软件,逐句进行翻译
优点:
- 开发效率高
- 用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的,与编译程序不同的是,解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行。
- 解释程序的优点是当语句出现语法错误时,可以立即引起程序员的注意,而程序员在程序开发期间就能进行校正。
- 跨平台性强
- 代码运行是依赖于解释器,不同平台有对应版本的解释器,所以解释型的跨平台性强
缺点:
- 执行效率低
- 解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码。
- 这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件, 软件解释器通常会导致执行效率较低。
-
小结
- 综上选择不同编程语言来开发应用程序对比
- 执行效率:机器语言>汇编语言>高级语言(编译型>解释型)
- 开发效率:机器语言<汇编语言<高级语言(编译型<解释型)
- 跨平台性:解释型具有极强的跨平台型
- 由于我们开发是应用程序,而应用程序必须运行于某一个平台之上
- 应用程序的快慢受限于平台(就好比F1赛车与宝马车同时跑在北京五环高速,都受限于道路环境,车速是差不多的)的快慢,并不是单从语言层面就可以提升整体执行效率的
- 于是开发效率、跨平台性才是我们需要优先考虑的问题
- 这就是我们首选Python的原因。
- 综上选择不同编程语言来开发应用程序对比
(2)Python语言介绍
(1)Python的创始
- Python的创始人为吉多·范罗苏姆(Guido van Rossum)。
- Python这个名字,来自Guido所挚爱的电视剧《Monty Python’s Flying Circus》,他希望这个新的叫做Python的语言,能符合他的理想:
- 创造一种C和shell之间,语法能够像shell一样简洁,易学易用、可拓展性强,同时兼顾C的强大功能。
- 于是Guido在1989年的圣诞节期间,开始编写能够解释Python语言语法的解释器。
- Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
- 最新的TIOBE排行榜https://www.tiobe.com/tiobe-index/,Python已飙升至世界第一。
- Python可以应用于众多领域
- 人工智能、数据分析、爬虫、金融量化、云计算、WEB开发、自动化运维/测试、游戏开发、网络服务、图像处理等众多领域。
- Python可从事方向
- 目前业内几乎所有大中型互联网企业都在使用Python
- Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。