zoukankan      html  css  js  c++  java
  • 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的不同点。

  • 相关阅读:
    MySQL 优化实施方案
    MySQL Replication 主从复制全方位解决方案
    CentOS 7.X 系统安装及优化
    W25Q32的使用
    Word分栏
    转载:STM32之中断与事件---中断与事件的区别
    常见贴片电阻的分类、功率、封装、标注规则
    导线时延
    重装系统流程
    MFC应用程序向导生成的文件
  • 原文地址:https://www.cnblogs.com/yangzhenwei123/p/6758889.html
Copyright © 2011-2022 走看看