python 介绍

1 编程语言的类型

编程语言从不同的角度可以分为,解释型和编译型,静态语言和动态语言、强类型和弱类型。

解释型和编译型的区别
编译型是把文件一次性全部翻译成机器语言,并保存为二进制文件。

解释型是在程序运行时,一条一条地通过解释器来翻译成机器语言,也就是解释器翻译一条,计算机运行一条。

  常用的编译型语言:c、c++、go、Object-c、swift、rust

  常用的解释型语言:JavaScript、Python、Ruby、PHP、Perl

  混合型:java 、C#

编译型vs解释型:

编译型

优点:编译型一般可以通过预编译过程对代码优化。编译型只需要编译一次,在后续运行时,执行效率非常高。

缺点:编译型在直接编译的过程中,会直接调用底层平台的接口,所以编译型很依赖平台。当从windows迁移到linux时,因两个操作系统的不同,需要重新编译,且要处理两个操作系统不同接口时的代码,所以编译型开发效率很低。

解释型

优点:因为解释型是由解释器边解释边执行,不需要底层平台的依托,所以可以很轻松的跨平台,因而开发效率比编译型的高。又因为解释型语言一般不需要关注底层代码的实现,屏蔽了对底层的操作,相应的学习成本也低很多。

缺点:由于需要解释器边解释边执行,运行速度是远远比不上编译型语言的。

动态语言和静态语言

动态语言:指在运行期才做数据类型检测的语言。所以在编写代码时,不用事先给变量指定类型。语言会在你第一次赋值给变量时,在内部将数据类型记录下来。

静态语言:必须在编译器给变量指定类型。

强类型与弱类型

强类型:数据类型一但给定,如果不作强制修改,变量一直是这个类型。

弱类型:数据类型可以被忽略的语言。一个变量可以赋多个类型的值。

强类型语言相比弱类型更严谨更不容易出错,而弱类型速度上略优于强类型。

2 python 的优缺点

python作为一门动态解释强类型语言。

优点:

  1. “简单”,“优雅”,易上手。容易被初学者接受

  2. 开发效率高,有强大的第三方库支持,避免反复造轮子。

  3. 高级语言,不需要考虑具体的内存管理。

  4. 可移植性。作为一门解释型语言,不依赖底层平台,使其能运行在所有系统平台。

  5. 可扩展性。可以直接用c或c++来编写,并在python中调用。

  6. 课嵌入性。可以直接把python嵌入到你的c/c++,从而向你的程序用户提供脚本功能。

缺点:

1.运行速度慢,python相比编译型语言要慢很多。

2.代码不能加密。由于python是解释型语言,它的源码是明文的形式存储的

3.线程不能利用多核。由于全局解释锁GIL(global Interpreter Lock)的存在,同一时刻,只能有一个线程执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。

3 Python解释器

CPython

当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

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的不同点。

原文地址:https://www.cnblogs.com/yangzhenwei123/p/6758889.html