最近,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. robot 如何定义用户关键字、变量

    1.用户关键字,使用robot语法定义的关键字 2.系统关键字  自带的 3.资源文件,自己定义的关键字 4.变量 自己定义的关键字,需单独建一个资源文件 自己写的关键字,需写在***Keywords ...

  2. JUC并发工具包之CyclicBarrier & CountDownLatch的异同

    1.介绍 本文我们将比较一下CyclicBarrier和CountDownLatch并了解两者的相似与不同. 2.两者是什么 当谈到并发,将这两者概念化的去解释两者是做什么的,这其实是一件很有挑战的事 ...

  3. TIOBE 11月指数:C语言居首,稳居宝座,Python直逼第二!

    官方网址:https://www.tiobe.com/tiobe-index/   ​ 这是自近20年前TIOBE指数开始以来,Java和C第一次不再占据前两位.C仍然是第一位的,但是现在第二个位置是 ...

  4. LaTex中的中文处理方法

    相关代码与注释: 显示效果:

  5. mysql建表和建数据库语句

    一.数据库操作语言 数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是 SQL(Structured Query Language) 结构化查询语言. SQL 的主要功能是和数据库建立连 ...

  6. ModelSim入门

    verilog设计进阶 时间:2014年5月5日星期一 主要收获: 1. 安装了ModelSim ALTERA 6.4a; 2. 熟悉基本流程,仿真成功: 3. 了解testbench语法基本. 为什 ...

  7. 我与oracle的爱恨情仇(第一章)

    关于配置 问题一 可能是虚拟机桥接问题 问题解决的链接:[如何更改虚拟机桥接](https://jingyan.baidu.com/article/9113f81b7cfbd22b3214c790.h ...

  8. .Net编码规范整理

    前言 此处只是整理并记录下.Net开发规范以便加深编码规范.一个好的编程规范可以让自己程序可读性,让自己编码更规范,分为两部分:通用规范..Net开发规范. 微软通用编程规范 明确性和一致性 库的使用 ...

  9. java并发编程实战《四》互斥锁(下)

    互斥锁(下):如何用一把锁保护多个资源?    一把锁可以保护多个资源,但是不能用多把锁来保护一个资源. 那如何保护多个资源? 当我们要保护多个资源时,首先要区分这些资源是否存在关联关系. 如下代码 ...

  10. 老猿学5G:融合计费场景的离线计费会话的Nchf_OfflineOnlyCharging_Update 更新操作过程

    ☞ ░ 前往老猿Python博文目录 ░ 一.Nchf_OfflineOnlyCharging_Update消息交互过程 Nchf_OfflineOnlyCharging_Update消息是是5G融合 ...