最近,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它可以帮助我们去减少一些代码量,或者说减少一些程序员该如何去思考这段代码怎么完成的事物。它会让我们将主要的精力放在我们的业务逻辑上,这是它的一个很大的优点。

最新文章

  1. bzoj4555题解
  2. Emacs 常用快捷键
  3. 解决【无法启动此程序,因为计算机中丢失MSVCP71.dll。尝试重新安装该程序以解决此问题】问题
  4. jquery ajax请求方式与提示用户正在处理请稍等,等待数据返回时loading的显示
  5. UVa 1658 (拆点法 最小费用流) Admiral
  6. VS2010中 为图片添加背景图片
  7. linq学习笔记:将List<T> 转换为 Dictionary<T Key,T Value>
  8. 导入sql时报日期类型错误
  9. 配置系统引导启动SuperScoekt
  10. [转载] 树莓派读取温湿度传感器DHT11
  11. ★不容错过的PPT教程!
  12. 【Python】 高级文件操作 shutil
  13. Vue+localstrong登录注册,并保持登录状态
  14. 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器
  15. C# ListBox实现显示插入最新的数据的方法
  16. load data语句实验报告
  17. EDF转TXT,EDF转mat,rec转TXT eeg
  18. JavaScript的Date类的函数特殊处理导致的问题
  19. Zabbix配置参数优化
  20. Spring boot 中Hibernate 使用

热门文章

  1. 为什么企业需要CRM系统?CRM的作用及其重要性分析
  2. python+selenium利用cookie记住密码
  3. Contest 1428
  4. Java基础教程——安装JDK
  5. 基础知识redis详解--【Foam番茄】
  6. 对象不支持“assign”属性或方法
  7. RabbitMQ Go客户端教程5——topic
  8. PyQt(Python+Qt)学习随笔:在父窗口中弹出子窗口无法显现的问题
  9. GYCTF Web区部分WP
  10. 小齐读者拿到快手、百度、网易等 offer 的独门秘籍!