02 编程语言与Python介绍

别等时光非礼了梦想. 提交于 2020-01-19 04:43:19

一 引子

基于上一章所学,有了计算机硬件,在在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何用某款编程语言来开发应用程序。

本章的主题是带大家熟悉一下编程语言,然后重点介绍python这门编程语言。

二 编程语言分类

2.1 机器语言

机器语言是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言。

而计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程。

这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言

此处的低级指的是底层、贴近计算机硬件(贴近代指需要详细了解计算机硬件细节、直接控制硬件),详解如下:

#机器语言
 用二进制代码01描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件。

 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一数

 机器语言是被微处理器理解和使用的,存在有多至100000种机器语言的指令,下述是一些简单示例
 #指令部份的示例
 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. 编写的程序可以被计算机无障碍理解、直接运行,执行效率高

#缺点

  1. 复杂,开发效率低
  2. 贴近、依赖具体的硬件,跨平台性差

2.2 汇编语言

汇编语言仅仅是用一个英文标签代表一组二进制指令

毫无疑问,比起机器语言,汇编语言是一种进步。

但汇编语言的本质仍然是直接操作硬件,因此汇编语言仍是比较低级/底层的语言、贴近计算机硬件。


#汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具
汇编的hello world,打印一句hello world, 需要写十多行,如下

; hello.asm
section .data ; 数据段声明
		 msg db "Hello, world!", 0xA 	;要输出的字符串
		 len equ  $  -  msg				;字符串长度
		 section  .text			;代码段声明
		 global  _start			;指定入口函数
		 _start: 				;在屏幕上显示一个字符串
	 	mov edx, len 		;参数三:字符串长度
		mov ecx, msg  		;参数二:要显示的字符串
		 mov ebx, 1 		;参数一:文件描述符(stdout)
		 mov eax, 4 		;系统调用号(sys_write)
		 int 0x80 			;调用内核功能
 							;退出程序
		 mov ebx, 0 		;参数一:退出代码
		 mov eax, 1 		;系统调用号(sys_exit)
		 int 0x80 			;调用内核功能

总结汇编语言的优点和缺点:

#优点

  1. 相对于机器语言,使用英文标签编写程序相对简单,执行效率较低,开发效率高。

#缺点

  1. 仍然是直接操作硬件,比起机器语言来说,复杂度稍低,但依旧居高不下,所以开发效率依旧较低。
  2. 依赖具体的硬件,跨平台性差

2.3 高级语言

高级语言是站在人(奴隶主)的角度,好不装B了。

就是用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道

注意!!!此处的高级指的是高层,开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言。

人类可以理解,而沙雕计算机则需要通过翻译才能理解。

所以高级语言的执行效率低于低级语言。

按照翻译的方式的不同,高级语言又分为两种:

2.3.1 编译型(如C语言)

类似谷歌翻译,是把程序所有代码编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件,优缺点如下:

#优点

  1. 编译一次之后就可以拿着结果重复运行(一次翻译),而无需再次翻译,执行效率高于解释型

#缺点

  1. 编译型代码是针对某一个平台翻译,当前平台翻译的结果无法拿到另外一个平台使用,既无法跨平台

2.3.2 解释型(如python)

类似同声传译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行。

优缺点如下:

#优点

  1. 代码运行依赖于解释器,不同平台有对应版本的解释器,所以代码是可以跨平台运行。

#缺点

  1. 每次执行都需要翻译(一句一句翻译),执行效率低于编译型

2.4 总结

综上选择不同编程语言来开发应用程序对比

#1、执行效率:机器语言 > 汇编语言 > 高级语言(编译型 > 解释型)

#2、开发效率:高级语言(解释型 > 编译型) > 汇编语言 > 机器语言

#3、跨平台性:解释型具有极强的跨平台性

由于我们开发是应用程序,而应用程序必须运行于某一个平台之上。

应用程序的快慢受限于平台(就好比F1赛车与宝马车同时跑在北京五环高速,都受限于道路环境,车速是差不多的)的快慢,单从语言层面就想提升整体执行效率是不切实际的。

开发效率、跨平台性才是我们真正需要优先考虑的问题,这也是我们首选python这门语言的关键原因。

三 Python介绍

  • 谈及python,涉及两层意思,一层代表的是python这门语言的语法风格,另外一层代表的则是专门用来解释该语法风格的应用程序:python解释器。

  • python的创始人为吉多·范罗苏姆(Guido van Rossum)。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s FlyingCircus,他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,语法能够像shell一样简洁,易学易用、可拓展性强,同时兼顾C的强大功能。于是Guido在1989年的圣诞节期间,开始编写能够解释Python语言语法的解释器。

  • Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。最新的TIOBE排行榜Python已飙升至世界第三。

  • Python可以应用于众多领域,如:人工智能、数据分析、爬虫、金融量化、云计算、WEB开发、自动化运维/测试、游戏开发、网络服务、图像处理等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。

3.1 Python解释器的发展史

1989年,Guido开始写Python语言的编译器。
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类、函数、异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
Granddaddy of Python web frameworks, Zope 1 was released in 1999

Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010

Python 3.0 - December 3, 2008 

(细心的读者会发现,08年时就推出了3.02010年反而又推出了2.7?是因为3.0不向下兼容2.0,而很多公司已经基于2.0版本开发出了大量程序,公司已然投入了大量的人财物力,这就导致大家都拒绝升级3.0,无奈官方只能推出2.7过渡版本,之后我们都应该采用3.0解释器开发程序,但为了方便读者维护2.0版本的软件,我们在遇到两种版本的差异时会专门指出来)

Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014

Python 3.5 - September 13, 2015
Python 3.6 - 2016-12-23 发布python3.6.0

3.2 Python解释器有哪些种类?

官方的Python解释器本质就是基于C语言开发的一个软件,该软件的功能就是读取以.py结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。

这种用C实现的解释器称为CPython,它是python领域性能最好,应用最广泛的一款解释器,我们在后面提到的解释器指的都是Cpython解释器。

但其实解释器作为一款应用软件,完全可以采用其他语言来开发,只要能解释python这门语言的语法即可。

Python解释器的一些种类如下,简单了解即可。

# Jython
JPython解释器是用JAVA编写的python解释器,可以直接把Python代码编译成Java字节码并执行,它不但使基于java的项目之上嵌入python脚本成为可能,同时也可以将java程序引入到python程序之中。

# IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。这就好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

# PyPy
PyPy是Python开发者为了更好地Hack Python而用Python语言实现的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译(注意不是解释),因此运行速度比CPython还要快。

# IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

四 安装Cpython解释器

Python解释器目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python解释器,在Windows系统上需要安装一下,具体步骤如下。

4.1、下载python解释器

打开官网 https://www.python.org,按提示下载即可

4.2、安装python解释器

4.3、测试安装是否成功

windows --> 运行 --> 输入cmd ,然后回车,弹出cmd程序,输入python,如果能进入交互环境 ,代表安装成功。
在这里插入图片描述

五 第一个Python程序

5.1 运行python程序有两种方式

方式一:交互式模式

交互式环境下,敲完一条命令按下enter键马上能看到结果,调试程序方便。程序无法永久保存,关掉cmd窗口数据就消失了。
在这里插入图片描述

方式二:命令行式

# 1、打开一个文本编辑工具,写入下方代码,并保存文件,此处文件的路径为D:\test.py。

print('hello world')

# 强调:文本编辑器写的代码毫无意义,只是一堆字符,并且文件的后缀名没有影响。由于python语言是解释型语言,我们直接使用python打开文件,python会读一行翻译一行,并且这个文件是永久保存在硬盘中的。

# 2、打开cmd,切换到文件路径D:\test.py,运行命令 `python 文件路径`即可。

# 注意:应该把.txt文件写成.py文件,因为这是我们python程序猿约定俗称的规范。但是这个.py文件和.txt文件没有任何区别的。

总结:

#1. 交互式模式下可以即时得到代码执行结果,调试程序十分方便。
#2. 若想代码永久保存下来,则必须将代码写入文件中。
#3. 我们以后主要就是在代码写入文件中,偶尔需要打开交互式模式调试某段代码,验证结果。

5.2 Python执行程序的三个阶段

  1. 先启动python3解释器。

  2. python3解释器相当于文本编辑器,将文本从硬盘读入内存。

  3. python3解释器解释执行文件代码,需要注意的是:只有第3个阶段才识别python语法,才有python语法这个概念,否则你输入的仅仅只是一串普通的字符。

5.3 注释

在正式学习python语法前,我们必须事先介绍一个非常重要的语法:注释。

1. 什么是注释?

注释就是对代码的解释说明,注释的内容不会被当做代码运行。

2. 为什么要注释?

增强代码的可读性。

3. 怎么使用注释?

代码注释分单行注释和多行注释
.
#1. 单行注释用#,跟在代码的上方或者后方
.
#2. 多行注释用""" """''' '''

4. 代码注释的原则

#1. 不用全部注释,只需要为自己觉得重要或不好理解的部分加注释即可
.
#2. 注释可以用中文或英文,但不要用拼音

六 IDE工具Pycharm的使用

6.1 什么是IDE?为什么要有IDE?

在编写第一个Python程序时,存在以下问题,严重影响开发效率。

问题一:我们了解到一个Python程序从开发到运行需要操作至少两个软件。

1. 打开文本编辑器,创建文本来编写程序
2. 打开cmd,然后输入命令执行python程序

问题二:在开发过程中,并没代码提示以及纠错功能。

综上,如果能有一款工具能够集成n个软件的功能,同时有代码提示和纠错等功能,那么将会极大地提升程序员的开发效率。

这就是IDE的由来,IDE全称Integrated Development Environment,即集成开发环境,最好的开发Python程序的IDE就是Pycharm。

6.2 pycharm安装

# 去官方地址下载,选择community版本

安装完成后注册,然后启动,创建项目(即文件夹),我们以后的代码都将存在这里。

6.3 Pycharm 创建文件夹

创建文件夹是管理文件的良好方式

6.4 创建文件并编写程序执行

  1. 创建文件,如test.py
  2. test.py中写代码,输入关键字的开头可以用tab键补全后续,并且会有代码的错误提示。
  3. 右键 --> run test.py 或者 利用工具栏的tools里的run

本文参考:小猿取经
部分原创,转载需署名

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!