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更加感兴趣了呢?更多干货课程请上华为云学院,体系化的培训课程,快速完成学习覆盖,让您轻松掌握Python的精彩内容。

→点击直达华为云学院,get更多新技能!

点击关注,第一时间了解华为云新鲜技术~

python第一个发行版本由c语言实现_【Python】讲真,你知道Python咋来的吗?相关推荐

  1. python第一个发行版本由c语言实现_1 晓白的python逆袭之旅基础篇---第一章

    第一章 来自晓白的困惑 1人物介绍晓白:一位即将毕业,踏入社会的大学生,对自己的前途充满了困惑,对计算机编程感兴趣,想以后进入互联网行业,从事开发工作,但是不知如何开始. 老袁:晓白的学长,同时也是晓 ...

  2. 不属于python语言保留字_以下选项中,不属于Python保留字的是( )_学小易找答案...

    [判断题]用摆式仪测试摆值同一处平行测定不少于3次,3个测点间距2~5m.( ) [单选题]下面是单拍子的是 [填空题]假设列表对象 aList 的值为 [3,4,5,6,7,9,11,13,15,1 ...

  3. 讲真,做Python一定不要只会一个方向!

    最近不少人在微信问我现在Python还好就业不好就业?发展前景怎么样?我30多岁了,还能不能转行编程?Python该怎么学?如果做Python到底该做爬虫还是数据分析还是web?......等等这样的 ...

  4. python怎么安装打开文件不存在怎么办呢_如果文件不存在,Python中的open()不会创建文件...

    16 个答案: 答案 0 :(得分:712) 您应该open使用w+模式: file = open('myfile.dat', 'w+') 答案 1 :(得分:112) 以下方法的优点是,即使在路上引 ...

  5. python接口自动化测试框架实战从设计到开发_【B0753】[java视频教程]Python接口自动化测试框架设计到开发完整版视频教程 it教程...

    Java视频教程名称:Python接口自动化测试框架设计到开发完整版视频教程   java自学网[javazx.com]  Python视频教程   it教程 Java自学网收集整理 java论坛&q ...

  6. python语言原理_梯度下降算法的原理用Python语言实现,易于理解,python,更

    梯度下降 要找到某个函数的最小值,就是沿着该函数的梯度的负方向寻找.若寻找某函数最大值,则沿着梯度方向找. 那么梯度下降数学表示: :步长或叫学习率, :是函数关于w的导数 梯度上升数学表示: 上述某 ...

  7. python语言例子_机器学习案例分析(基于Python语言)

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  8. python游戏背景音乐循环播放_9.2 播放背景音乐_师傅带徒弟学:Python视频课程之游戏开发引擎Cocos2d-Python_Python视频-51CTO学院...

    本视频基于**Python 3.6版本 Python语言之所以受欢迎,很大的原因是有很多可以使用的库,Python社区也有很多游戏开发库,其中较为优秀有:Cocos2d.Pyglet和Pygame,还 ...

  9. python字符串处理方法与函数有什么区别_傻傻分不清系列 | Python中各种字符串处理方法...

    Python易混淆知识系列:Pandas字符串方法和字符串内建函数,使用Python的一个优势就是字符串处理起来比较容易. Python的初学者在学习字符串内建函数的时候往往会很困惑:字符串的内建函数 ...

最新文章

  1. MongoDB(课时30 $group)
  2. linux 粘贴内容命令行,Linux下命令行中的复制和粘贴
  3. argb可以和rgb同步吗_神光同步酷炫幻彩,安钛克光棱120 RGB风扇套装
  4. leetcode1282. 用户分组(贪心算法)
  5. ORA-27101 Shared memory realm does not exist 之解決 (转)
  6. canvas元素简易教程(7)(大部分转自火狐,自己只写了简单的代码分析)
  7. 关于树的前序遍历,中序遍历,后序遍历的相互转化(含代码实现)
  8. SQL Server-【知识与实战VII】存储过程(上)
  9. 小米笔记本 镜像_小米笔记本Air 13.3原装出厂WIN10 2004 ISO镜像下载
  10. 爱立信实习生面试小结
  11. 习题7-3 判断上三角矩阵
  12. 概率论中经典概率模型
  13. TOP100summit分享实录 | JFrog高欣:Kubernetes is hard!JFrog的Kubernetes实践
  14. oracle lead() over,Oracle数据库之lead over 和 lag over
  15. 老徐WEB:js入门学习 - javascript函数和闭包
  16. 训练3.21(CF 543B Destroying Roads)
  17. 记一次js文件AES加密的key与iv逆向分析
  18. php判断是不是顺子,php 怎么判断为顺子,三个相邻的数字
  19. Spring Data JPA 实战
  20. 杨毅-kafka集群部署

热门文章

  1. Yarn取代job/task tracker
  2. pam_mysql模块安装
  3. 提升网络可靠性的双网卡绑定7种模式
  4. ProgressBar 各种样式
  5. Patrol 7 架构下?的处理方法
  6. User.find_each
  7. Golang的导包和引用包的问题
  8. CLR Essential Types
  9. list dict 性能测试
  10. cache与buffer