Python简介

1、Python的优缺点

优点:

    Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

    开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。

    高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

    可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行

    可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

    可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

缺点:

    速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。

    代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。

    线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

    2,python的种类。

    CPython

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

    CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

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

    PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

    Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

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

    小结:Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

(0)

相关推荐

  • Python语言学习:Python语言的前世今生(简介、常用IDE(开发环境)、ML常用库、发展、应用、未来前景)

    Python语言学习:Python语言的前世今生(简介.常用IDE(开发环境).ML常用库.发展.应用.未来前景) 相关文章 Python语言学习:python语言的入门.基础用法之详细攻略 Pyth ...

  • 什么是 MicroPython?和CPython有什么区别?

    在学习Python的过程中,我们会遇到很多让人陌生却又熟悉的词汇,比如说CPython.MicroPython,很多人也会问:MicroPython.CPython是什么?跟Python有什么关系?它 ...

  • Python解释器分为哪几类?

    众所周知,Python是一门解释器语言,代码想要运行,必须通过解释器来执行;而且Python拥有多种解释器,每个解释器有不同的特点,接下来我们一起来了解一下Python解释器的分类及安装,希望对你们有 ...

  • Python解释器哪个好?

    学会使用各式各样的工具是非常重要的,可以让工作或学习变得更加便利.高效.比如说Python,大家都知道Python是一门解释器语言,代码如果想要运行,必须通过解释器来执行,但是Python解释器众多, ...

  • PyPy为什么能让Python比C还快?一文了解内在机制

    来自|机器之心 「如果想让代码运行得更快,您应该使用 PyPy.」 - Python 之父 Guido van Rossum 对于研究人员来说,迅速把想法代码化并查看其是否行得通至关重要.Python ...

  • Python IDE和解释器的区别!Python入门教程

    学习Python时,大家应该都听说过Python IDE和Python解释器,也经常有人把它们混为一谈,误认为Python IDE就是Python解释器.其实并不是,Python IDE和Python ...

  • 图解|为什么 Python 多线程无法利用多核

    (给Python开发者加星标,提升Python技能) 来源:后端技术指南针 1.全局解释锁 如题: Python的多线程为什么不能利用多核处理器? 全局解释器锁(Global Interpreter ...

  • Python解释器种类有哪些?有什么特点?

    当我们编写完Python代码时,我们会得到一个包含Python代码的以.py为扩展名的文件,这个时候,我们要运行这个代码,就需要Python解释器去执行.py文件.那么Python解释器种类有哪些?具 ...

  • Python代码运行慢怎么办?这五种方法要谨记!

    对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...

  • 知识库大放送——Python简介

    大家都知道,Python是一个依赖强大的组件库完成对应功能的语言.近几年Python市场异常火热,越来越多的人开始进军这一领域,今天就带大家了解以下Python. Python([KK] 英语发音: ...

  • Python全套教学视频教程:第2讲,python简介

    Python全套教学视频教程:第2讲,python简介

  • Selenium2+python自动化51-unittest简介

    前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的.python里面也有单元测试框架-unittest,相当于是一个python版的junit. ...

  • Python 面向对象编程的核心概念知识点简介

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于 无量测试之道 ,作者: 无量测试之道 面向对象编程的核心概念:封装,抽象,多态.继 ...

  • Python空间数据计算:1.既强大又好玩GeoPandas简介

    原创 god xia 虾神说D 5天前 Pandas做为Python中用于处理数据的强力首选包(人家的名字就叫做powerful --能不能强大么),这里就不用介绍了--如果还不会Pandas的同学就 ...

  • 第 58 天:Python Web开发 Django 简介

    今天来为大家介绍 Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源.Django ...

  • 第 82 天:Python Web 开发之 JWT 简介

    在之前的课程中,介绍过 Flask-Login 框架,它是基于 Session 和 Cookie 技术来实现用户授权和验证的,不过 Session 有很多的局限性,这一节介绍一种基于 token 的验 ...

  • 第 87 天:Python Web开发 OAuth2.0 简介

    随着互联网的发展,各种应用相互交叉,到处需要用户登录,信息安全成为了不可回避的问题,应用需要扩展,用户需要更好的体验,信息需要更安全的保障,为了满足这些需求,互联网技术不断推陈出新,从通信安全,到各种 ...

  • Python第1讲——Python语言简介

    https://m.toutiao.com/is/e8qeGp1/ 使用百度搜索一下"TIOBE",查询2021年03月份编程语言排行榜,可以看到最常用的5种计算机语言是: 其中P ...