一.编程语言的分类
## 1.编程语言的发展史
机器语言
- 机器语言是站在计算机的角度来开发程序,而计算机只能识别高低电频,因此计算机语言是一系列用0和1这种二进制代码写的指令,优点是站在计算机的角度编写的指令,更容易被计算机理解,执行效率高,可直接控制计算机硬件。缺点是过于复杂,开发效率低,依赖具体的计算机硬件,跨平台性差 。
汇编语言
- 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。优点是相对于机器语言来说使用英文标签编写程序相对简单,执行效率稍低,开发效率稍高。缺点是仍然是直接操作硬件,比起机器语言来说,复杂度稍低,但依旧居高不下,所以开发效率依旧较低
,一样依赖具体的硬件,跨平台性差
高级语言
- 高级语言是站在人的角度,说人话,即用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道的,此处的高级指的是高层、开发者无需考虑硬件细节。优点是开发效率可以得到极大的提升,缺点是高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言。
高级语言可以分为编译型(如C语言)和解释型(python)
编译型
- 把程序所有代码编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件。优点是编译一次之后就可以拿着结果重复运行,而无需再次翻译,执行效率高于解释型缺点是编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到另外一个平台使用,即无法跨平台
解释型
- 类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行,优点是代码运行是依赖于解释器,不同平台有对应版本的解释器,所以代码是可以跨平台运行,缺点是每次执行都需要翻译,执行效率低于编译型。
2.语言效率的对比
- 执行效率:机器语言>汇编语言>高级语言(编译型>解释型)
- 开发效率:机器语言<汇编语言<高级语言(编译型<解释型)
跨平台性:解释型具有极强的跨平台型 学习难度:机器语言>汇编语言>高级语言
3.哪些语言是解释型,哪些语言是编译型?
- 解释型语言: Perl脚本语言、Python、basic(拥有专门的basic解释器 )、C#等
- 编译型语言:C、C++等
一.python简单介绍
## 1.什么是python
Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
## 2.python的优点
- 简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
- 易学:Python极其容易上手,因为Python有极其简单的说明文档 。
- ** 速度快**:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。
- 免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
- 高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
- 可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、PalmOS、QNX、VMS、Psion、AcomRISCOS、VxWorks、PlayStation、SharpZaurus、WindowsCE、PocketPC、Symbian以及Google基于linux开发的android平台。
- 解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。
- 面向对象:Python既支持面向过程的编程也支持面向对象的编程。在"面向过程"的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在"面向对象"的语言中,程序是由数据和功能组合而成的对象构建起来的。
- 可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
- 可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
- 丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的"功能齐全"理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
- 规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
## 3.python解释器的种类
- Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器。
- CPython(ClassicPython,也就是原始的Python实现,需要区别于其他实现的时候才以CPython称呼;或解作C语言实现的Python)。这是最常用的Python版本。
- Jython(原名JPython;Java语言实现的Python,现已正式发布)。Jython可以直接调用Java的各种函数库。
- PyPy(使用Python语言写的Python)
- IronPython(面向.NET和ECMA
CLI的Python实现)。IronPython能够直接调用.net平台的各种函数库。可以将Python程序编译成.net程序等。
现在python主流解释器分为两个版本,一个是python2.x,一个是python3.x
(ps:IT行业的定律,一定不要使用最新版的,)