目录:
- 一 引子
- 二 编程语言分类
- 2.1 机器语言
- 2.2 汇编语言
- 2.3 高级语言
- 2.3.1 编译型 (如C语言)
- 2.3.2 解释型 (如Python)
- 2.4 总结
- 三 python介绍
- 3.1 Python解释器的发展史
- 3.2 Python解释器有哪些种类?
- 四 安装Cpython解释器
- 4.1、下载python解释器
- 4.2、安装python解释器
- 4.3、测试安装是否成功
- 五 第一个python程序
- 5.1 运行python程序有两种方式
- 5.2 注释
- 六 IDE工具pycharm的使用
- 6.1、什么是IDE?为何要有IDE
- 6.2、pychram安装
- 6.3、Pycharm创建文件夹
- 6.4、如何创建文件并编写程序执行
基于上一章所学,有了计算机硬件,再在硬件智商安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。
二 编程语言分类:

机器语言是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言,二计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程,折意味着机器语言是直接操作硬件的,因此机器语言属于低级语言,此处的低级指的是底层,贴近计算机硬件(贴近代指需要详细了解计算机硬件细节,直接控制硬件),详细如下
#机器语言
用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件的
用机器语言编写程序,编程人员要首先先书记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一条书记的储存分配和输入输出,还得记住编程过程中每部所使用的工作单元在何处何处状态。这是一件十分繁琐的工作,编写程序话费的时间往往是实际运行时间的几十倍或几百倍,儿子,编出的程序全省些0和1的指令代码,直观性差,不便阅读和书写,还容易出错,且依赖于具体的计算机硬件型号,局限性很大。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
#指令部分的示例
0000代表加载(LOAD)
0001代表存储(STORE)
...
#暂存器部分的示例
0000代表暂存器A
0001代表暂存器B
#存储器部分的示例
000000000000代表地址为0的存储器
000000000001导表地址为1的存储器
000000010000代表地址为16 的存储器
100000000000代表地址为2^11的存储器
#集成示例
0000,0000,000000010000 代表 LOAD A, 16 0000,0001,000000000001 代表 LOAD B, 1 0001,0001,000000010000 代表 STORE B, 16 0001,0001,000000000001 代表 STORE B, 1[1]
总结机器语言
1,执行效率最高
编写程序可以被计算器无障碍理解,直接运行,执行效率高
2,开发效率最低
复杂,开发效率低
3,跨平台性差
贴近,依赖具体的硬件,跨平台性差
2.2 汇编语言
汇编语言仅仅是用一个英文标签代表一组二进制指令,毫无疑问,比起机器语言,汇编语言是一种进步,单汇编语言的本质仍然是直接操作硬件,因此汇编语言仍是比较低级的底层语言,贴近计算机硬件
总结汇编语言
1,执行效率高
相对于机器语言,使用英文标签编写程序相对简单,执行效率高,但较之机器语言较低
2,开发效率低
仍然是直接操作硬件 ,比起机器语言来说,复杂度稍低,但依旧居高不下,所以开发效率依旧较低
3,跨平台性差
同样依赖具体的硬件,跨平台性差
2.3 高级语言高级语言是站在人的(努力主)的角度,说人话,既用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言与操作系统打交道的,此处的高级指的是高层,开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言
按照翻译的方式的不同,高级语言又分为两种:
2.3.1 编译型(如C语言):
类似于谷歌翻译,是吧程序所有代码编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件,详细如下
#1,执行效率高
编译是指应用源程序执行前,就将程序源代码‘翻译’成模板代码(既机器语言),
因此其模板程序可以脱离其语言环境独立执行,使用比较方便,执行效率较高
2.开发效率低:
应用程序一但要修改,必须先修改源代码,然后重新编译,生成新的模板文件才能执行,而在只有模板文件而没有源代码,修改会很不方便,所以开发效率低于解释型
3,跨平台性差
编译型代码是针对某一平台翻译的,当前平台防疫的结果无法拿到不同的平台使用,针对不同的平台必须重新编译,既跨平台性差
#其他
现在大多数的编程语言都是编译型的
编译程序将源程序翻译成目标程序后保存在另一个文件中,该模板程序可脱离编译程序直接在计算机上多次运行。
大多数软件产品都是以模板程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术。
C,c++,Ada,Pascal都是编译实现的
2.3.2 解释型(如python):
类似同声翻译,需要有一个解释器,解释器会读取程序代码,一遍翻译一边执行,详细如下
#1.执行效率低
解释型语言的实现中,翻译器并不产生模板机器代码,而是产生易于执行的中间代码。
这种中间代码于机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,
软件解释器通常会导致执行效率较低。
#2,开发效率高
用解释型语言编写的程序时由另一个可以理解中间代码的解释程序执行的,与编译程序不同的是,,解释程序的任务时逐一将源程序的语句解释成可以执行的机器指令,不需要将源程序翻译成目标代码再执行,解释程序的有点是当语句出现语法错误时,可以立即引起程序员的注意,二程序员程序开发期间能够进行校正
#3,跨平台性强
代码运行是依赖解释器,不同平台有对于版本的机器,所以解释型的跨平台性强
# 其他
对于解释型Basic语言,需要一个专门的解释器解释执行basic程序,每条语句只有执行时才会翻译,这种解释型语言每执行一次就翻译一次,因而效率低下,一般地,动态语言都是解释型的,
列入:tcl,perl,ruby,VBScript,JavaScript等
ps:混合型语言
java是一类特殊的编程语言,java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,然后再java虚拟机上解释方式执行字节码
综上选择不同编程语言来开发应用程序对比
#1,执行效率:机器语言》汇编语言》高级语言(编译型》解释型)
#2 开发效率: 机器语言《汇编语言《高级语言(编译型《解释型)
#3,跨平台性: 解释型具有极强的跨平台性
由于我们开发的是应用程序,而应用程序必须运行某一个平台之上,应用程序的快慢受限于平台(就好比F1赛区与宝马车同时泡在北京五环高速,都先受限于道路环境,车速是差不多的)的快慢,并不是单从语言层面就可以提升整体执行效率,于是开发效率,跨平台性才是我们需要优先考虑的问题,这就是我们首先python的原因
谈及python,设计两层意思,一层代表的是python这门语言的语法风格,另外一层代表的则是专门用来解释改语法风格的应用程序:python解释器
python的创始人为吉多 范罗苏姆,python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus,他希望这个新的叫做Python的语言,能符合她的理想:创造一种c和shell之间,语法能够shell一样简洁,易学易用,可扩展性强,同时兼顾c的强大功能,于是Guido在1989年的圣诞节期间,开始编写能够解释python语言语法的解释器。
python崇尚有没,清晰,简单,是一个优秀并广泛使用的语言,最新的Tiobe排行榜,python已飙升时间第三。
python可以应用于众多领域,如:人工智能,数据分析,爬虫,金融量化,云计算,web开发,自动化运维/测试,游戏开发,网络服务,图像处理等众多领域,目前几乎所有大中型互联网企业都在使用python,如:YouTube,Dropbox,bt,quora(中国知乎),豆瓣,知乎,google,yahoo!,facebook,nasa,百度,腾讯,汽车之家,美团等。