最近,Python语言越来越火,那什么是Python?它怎么诞生的?它跟C语言、shell语言有什么区别?语言环境是怎么样的?下面,跟着我的步伐,一起去了解一下吧~
Python 诞生在一个圣诞节
Python诞生于1989年的一个圣诞节,其创作者Guido van Rossum为了打发圣诞节假期的无聊,便开始了Python语言的编写。Python第一个发行版本是在1991年,起名为Python是源自于Guido喜欢的一档电视节目——Monty Python´s Flying Circus 。Guido在创作Python的时,希望有一种语言可以像C语言那样可以调用计算机的功能接口,又可以像shell那样进行轻松的编程,所以他在1989年的时候创建了Python这门编程语言。
 
Python 的优势VS不足
 
我们知道想掌握一门语言,首先得先了解其优势和不足。Python第一个优势在于语法优雅简单,Python写起来就像写英文一样,可读性非常高,清晰易懂。比较容易理解。第二个优势是编程范式,它支持很多编程范式,面向过程、面向对象,它还支持函数式编程。第三点优势是Python的一个动态解释性, Python代码是不需要编译的,可以直接由Python解释器来进行运行,也可以在运行中修改类的属性,相较于Java或者说C语言的代码来说,这是一个很大的优势。第四点优势,第三方库。Python拥有功能强大并且数量庞大的第三方库。迄今为止,它的第三方库已经超过18万个,涉及到各行各业、多个领域,!非常方便。 Python有一个代号叫做胶水语言,这也是它的第五点优势。这个代号的来由是因为Python可以去调用Java以及C语言编写好的模块。
 
 
那我们再来看一下Python的 缺点 ,Python比较致命的缺点是运行速度慢,相较于Java、 C语言来说是非常慢的。虽然它的解释器是由C语言和Java语言编写的,但这也不能弥补它运行速度慢的缺点。不过就一个程序而言,它并不是每时每刻都要保持着一个超高的运行速度,所以我们可以用胶水语言这个特性去结合一些其它的代码、比如说Java,比如说C,在我们这个程序里特别需要运行速度的地方,用Java和C语言去编写代码,然后用Python来调用,就可以去弥补这个缺点,并且可以更合理地去利用我们以前会的编程语言。
还有一点,线程灾难,这是Python本身机制的问题。在Python里,为了保证线程数据的安全性,它天然地给线程加了一把锁,只有拿到这把锁的线程才可以执行。所以说Python多线程是一个伪多线程。它实际上只有一个线程在运行,这个也是它的一个缺点。
Python 和C语言、shell语言的区别
好,那了解完Python的优点和缺点以后,那它和其他语言孰好孰坏,我们该pick哪一个呢?下面我们主要看一下Python和C语言、shell的相同点和区别。
C语言和Python语言都可以去编写一些程序和工具,就像我们平常用到的一些APP、或者说一些其它的程序;Python和shell都是脚本语言,这是它们的一些相似性,再来看一下它们的一些区别点。
首先运行速度,C语言和shell语言的运行速度都会比Python要高一些,但C语言在学起来的时候可能有一些困难,当然这个困难是相对于Python和shell语言来说的。Python和shell语言它们都比较简单。
第三方库,也就是我们的工具包,Python的工具包非常的多。大家以后如果经常使用Python的话,会发现有一些功能根本没必要思考自己怎么来完成,我们只需要导入一些工具包,就可以很简单的实现。而C和shell语言它们是没有很多工具包的。
还有代码的复用性,C和Python它们可以依照程序员的技能来提高代码的复用性,而shell作为一个脚本语言,主要是用于运维方面,所以它代码的复用性相较于C和Python而言会低一些。可移植性和代码的复用性上是很相似的,C语言它可以去进行一些系统内核的编写,而Python和shell是不支持的。
自动的内存管理,C和shell语言没有自动的内存管理的,而Python作为高级编程语言,它有这样的功能。可扩展性以及动态语言,这两点同样也只有Python支持而C和shell是不支持的。
最后一点内存操作,在Python中因为解释器已经自动的去管理内存了,所以说它本身它其实并没有一些特别多的内存操作。而C和shell则不同,它们可直接去操控内存。
那通过我们上面的对比就可以发现了,Python它可以帮助我们去减少一些代码量,或者说减少一些程序员该如何去思考这段代码怎么完成的事物。它会让我们将主要的精力放在我们的业务逻辑上,这是它的一个很大的优点。

带你探究Python的诞生和由来的更多相关文章

  1. python基础1之 由来、种类、优缺点、安装环境

    python基础1之由来.种类.优缺点.安装环境 一.前世今生 Python的创始人是吉多·范罗苏姆(Guido van Rossum),在1989年开发.今年最新的编程语言排行榜中,python名列 ...

  2. dwSun带你选Python的编辑器/IDE

    dwSun带你选Python的编辑器/IDE Python 是一门简单易学,同时又十分强大的编程语言.特别是随着人工智能的热潮,Python作为AI开发的首选语言,已经是技术人员的必备技能. 在学习和 ...

  3. Python的诞生和各种解释器

    一:Python的诞生 参考:https://www.jianshu.com/p/1cc1382e5e04   二:Python的各种解释器 参考:https://www.liaoxuefeng.co ...

  4. Facebook资深工程师带你学Python核心技术

    人工智能时代下,Python毫无疑问是最热的编程语言.在推开Python的大门后却发现,Python入门容易但精通却不易. 想要精通这门语言,必须真正理解知识概念,比如适当从源码层面深化认知,然后熟悉 ...

  5. [带你飞]一小时带你学会Python

    1.面向的读者: 具有Javascript经验的程序猿. 2 快速入门2.1 Hello world 安装完Python之后,打开IDLE(Python GUI) , 该程序是Python语言解释器, ...

  6. python ctypes 探究 ---- python 与 c 的交互

    近几天使用 python 与 c/c++ 程序交互,网上有推荐swig但效果都不理想,所以琢磨琢磨了 python 的 ctypes 模块.同时,虽然网上有这方面的内容,但是感觉还是没说清楚.这里记录 ...

  7. [转]python ctypes 探究 ---- python 与 c 的交互

    近几天使用 python 与 c/c++ 程序交互,网上有推荐swig但效果都不理想,所以琢磨琢磨了 python 的 ctypes 模块.同时,虽然网上有这方面的内容,但是感觉还是没说清楚.这里记录 ...

  8. 从底层带你理解Python中的一些内部机制

    下面博文将带你创建一个字节码级别的追踪API以追踪Python的一些内部机制,比如类似YIELDVALUE.YIELDFROM操作码的实现,推式构造列表(List Comprehensions).生成 ...

  9. 通过哪吒动漫豆瓣影评,带你分析python爬虫与BeautifulSoup快速入门【华为云技术分享】

    久旱逢甘霖 西安连着几天温度排行全国三甲,也许是<哪吒之魔童降世>的剧组买通了老天,从踩着风火轮的小朋友首映开始,就全国性的持续高温,还好今天凌晨的一场暴雨,算是将大家从中暑边缘拯救回来了 ...

随机推荐

  1. api4excel - 接口自动化测试excel篇

    api4excel - 接口自动化测试excel篇 工作原理: 测试用例在excel上编辑,使用第三方库xlrd,读取表格sheet和内容,sheetName对应模块名,Jenkins集成服务发现服务 ...

  2. mybatis 动态SQL 源码解析

    摘要 mybatis是个人最新喜欢的半自动ORM框架,它实现了SQL和业务逻辑的完美分割,今天我们来讨论一个问题,mybatis 是如何动态生成SQL SqlSessionManager sqlSes ...

  3. 【CF600E】Lomsat gelral——树上启发式合并

    (题面来自luogu) 题意翻译 一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和. ci <= n <= 1e5 裸题.统计时先扫一遍得到出 ...

  4. sentinel整合servlet

    <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-web-ser ...

  5. LaTeX中的参考文献BibTex

    设置: BibTex代码及注释: 显示效果:

  6. c++11-17 模板核心知识(十)—— 区分万能引用(universal references)和右值引用

    引子 如何区分 模板参数 const disqualify universal reference auto声明 引子 T&&在代码里并不总是右值引用: void f(Widget&a ...

  7. CentOS下搭建禅道Bug反馈系统

    禅道 下载集成版本(apache\php\mysql) wget http://sourceforge.net/projects/zentao/files/8.2.5/ZenTaoPMS.8.2.5. ...

  8. MIT-6.006算法导论(2011秋)

    L01 Algorithmic Thinking,Peak Finding 算法定义:高效处理大量数据的程序 在学本课之前最好先学习6.042,本课进阶为6.046 本门课的8个主要章节:算法思想.排 ...

  9. 关于esp8266的SDK开发串口打印mismatch map 3,spi_size_map 6 system_partition_table_regist fail解决办法

    最近在学习esp8266 用的sdk开发,烧录碰到个问题,本人使用的esp8266模块是esp8266-12f,模块是4M的也就是32Mbit 参考了网上的很多办法,大部分写的不清楚也没解决,摸索了几 ...

  10. python之Bug之字符串拼接bug

    \r\n拼接Bug 环境: python3.4.pycharm2017 偶然的学习中遇到了一个问题,百思不得姐,什么问题呢,大家输入太快了,难免有失误就如下面的代码 #构造响应数据 response_ ...