- A+
一:编程与编程语言
要学习python,首先要搞明白3件事,什么是编程?我们为什么要编程?什么是编程语言?
编程语言:
Python就是一门编程语言,他是人和计算机沟通的语言,譬如我们和外国人语言不同,导致没办法交流,所以需要讲他们能听懂的语言,就是英语。英语就是我们和外国人沟通和传达思想的介质,所以编程语言之一的python就是我们和计算机沟通的介意,我们称之为编程语言。
编程的目的:
我们现在的社会发展已经离不开计算机,使用计算机能够帮我们处理很多的事情,比如:信息发布、通讯、认识世界等等,充斥这生活的方方面面,我们需要去将我们人类的思想传达给计算机,让计算机帮我们去完成我们指定的工作。
什么是编程?
编程即程序猿根据需求把自己的思想流程按照某种编程语言的语法风格写下来,产出的结果就是包含一堆字符的文件。
强调:程序在未运行前跟普通文件无异,只有程序在运行时,文件内所写的字符才有特定的语法意义。
二:编程语言分类
编程语言分为如下3类:
- 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接使用二进制编程,直接操作硬件。
- 汇编语言:站在计算机的角度,简写的英文标示符取代二进制去编写程序,本质仍然是直接操作硬件。
- 高级语言:站在人的角度,说人话,即用人类的字符去编写程序,屏蔽了硬件操作。
这3中语言的优缺点:
- 优点是最底层,执行速度最快
- 缺点是最复杂,开发效率最低
2. 汇编语言
- 优点是比较底层,执行速度最快
- 缺点是复杂,开发效率最低
3. 高级语言
- 编译型语言执行速度快,不依赖语言环境运行,跨平台差
- 解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行
那么Python属于那种语言?
Pyhton属于高级语言,高级语言更贴近人类语言,因而造成了:它必须翻译成计算机能读懂的二进制后,才能被执行。按照翻译分为编译型和解释型。
- 编译型:需要编译器,编译是指在应用源程序执行之前,就将程序代码‘翻译’成目标代码(二进制的机器语言),因此其目标程序可以脱离其语言环境独立运行(编译生成的可执行文件,是CPU可以理解的二进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。
- 解释型:需要解释器,解释型就如同同声传译,你说一句我会翻译一句,这种方法比较灵活,有良好的平台兼容性,修改代码时直接修改就可以、还可快速部署,不需要停机维护。如python、java、php、Ruby等都是属于高级语言中的解释型语言。
这个看下这个网站统计的编程语言使用的比例:https://www.tiobe.com/tiobe-index
三:Python的种类
我们现在知道了Python是一门解释型语言,代码想运行,必须通过解释器执行,Python的解释器本身也可以看作是个程序(翻译官司是哪国人不重要),这个程序是什么语言开发的呢? 答案是好几种语言? what? 因为Python有好几种解释器,分别基于不同语言开发,每个解释器特点不同,但都能正常运行我们的Python代码,下面分别来看下:
CPython:CPython是使用最广且被的Python解释器。
当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
四:Python 2.x 和 Python 3.x 的不同
2.x:
- 源码重复,不规范
- 有long int数据类型
- 默认是ASCII码,解决方式加行 # --*--coding:UTF-8 --*--
- print是语句
3.x:
- 整合源码
- 无long int类型
- 默认是utf-8
- print语句没有了,取而代之的是print()函数。