Python是什么?你真的了解Python吗?

一、Python是什么
相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一。从性质上来讲它和我们熟知的C、java、php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 3(数据源自最新的TIOBE排行榜)。

来头不小啊!二十多种主流的开发语言,我该从哪一个开始呢?  人生苦短,我用 python!

二、Python的由来和发展趋势
Python的前世源自鼻祖“龟叔”。1989年,吉多·范罗苏姆(Guido van Rossum)在阿姆斯特丹为了打发无聊的圣诞节,决心开发一个新的脚本解释程序,自此Python和创始人“龟叔”开始进入公众视野。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

1991年,第一个Python编译器诞生。它基于C语言实现,并能够调用C语言的库文件。后面历经版本的不断换代革新,Python走到了非常具有里程碑意义的一个节点,即2004的2.4版本诞生了目前最流行的WEB框架Django!六年后Python发展到2.7版本,这是目前为止2.x版本中最新且较为广泛使用版本。

2.7版本的诞生不同于以往2.x版本的垂直换代逻辑,它是2.x版本和3.x版本之间过渡的一个桥梁,以便最大程度上继承3.x版本的新特性,同时尽量保持对2.x的兼容性。

因此3.x版本在2.7版本之前就已经问世,从2008年的3.0版本开始,python3.x系呈迅猛发展之势,版本更新活跃,一直发展到现在最新的3.7版本。3.7版本也是目前3.x系列中主流且广泛使用的版本,后续相关程序的demo,默认均基于3.7版本展开。

三、Python 2 VS Python 3
许多初学者会纠结于从2.x版本还是3.x版本开始python学习之路。这里简要对比下个人学习了解到的两者的差异:

3.x版本中 PRINT IS A FUNCTION,使用起来更简单方便;
33.x版本中默认使用unicode编码,妈妈再也不用担心你的程序编码问题了;
33.x版本中某些库进行了改名,具体还有待在后续学习中深入展开;
3目前3.x版本还不能完全支持Twisted module,这恐怕是3.x版本中最大的遗憾。也不要过于纠结这点,据说官方正在弥补这个不足,同时也相信能有办法解决的:)
长江后浪推前浪,python的未来是属于3.x系列的,官方宣布2020年之后不再支持2.x系列中最nb的2.7版本,2.x版本将逐渐寿终正寝,最终被铭刻在开发语言的丰碑上。
所以学习3.x版本没错的!

四、Python的优缺点

二十多种主流开发语言,python何以能在20多年间以如此迅猛之势横扫七大洲八大洋呢?这都是它自身优良的特性决定的.

Python优点:

“优雅”、“明确”、“简单”
这是python的定位,使得python程序看上去简单易懂,初学者容易入门,学习成本更低。但随着学习的不但深入,python一样可以满足胜任复杂场景的开发需求。引用一个说法,Python的哲学是就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。
开发效率高
python作为一种高级语言,具有丰富的第三方库,官方库中也有相应的功能模块支持,覆盖了网络、文件、GUI、数据库、文本等大量内容。因此开发者无需事必躬亲,遇到主流的功能需求时可以直接调用,在基础库的基础上施展拳脚,可以节省你很多功力和时间成本,大大降低开发周期。
无需关注底层细节
Python作为一种高级开发语言,在编程时无需关注底层细节(如内存管理等)。
功能强大
Python是一种前端后端通吃的综合性语言,功能强大,php能胜任的角色它都能做,至于后端如何胜任,需要在后续学习中逐步领悟。
可移植性
Python可以在多种主流的平台上运行,开发程序时只要绕开对系统平台的依赖性,则可以在无需修改的前提下运行在多种系统平台上,具体有待后续学习中深入展开。

一个硬币总有两面,那么Python有缺点吗?答案是肯定的,总结如下:

Python缺点:

代码运行速度慢
因为Python是一种高级开发语言,不像c语言一样可以深入底层硬件最大程度上挖掘榨取硬件的性能,因此它的运行速度要远远慢于c语言。另外一个原因是,Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
但需要注意的是,这种慢对于不需要追求硬件高性能的应用场合来讲根本不是问题,因为它们比较的数量级根本不是用户能直观感受到的!想想程序执行所需的时间数量级?例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,用户体验几乎没有差别,除非你用非常精确的计时器来计时。

五、Python的适用领域
Python典型的适用领域如下:

云计算开发
云计算领域最火的语言,典型代表openstack。
web开发
众多优秀的web框架,众多优秀的大型web站点(Youtube,instagrm,豆瓣等)均基于python开发。
系统运维
各种自动化工具的开发,CMDB、监控告警系统、堡垒机、配置管理&批量分发工具等均可以搞定。这是自己需要重点学习的领域。
科学计算、人工智能
据网上了解用于围棋大战的谷歌阿发狗就使用了python开发(但估计只是部分而已)。
图形GUI处理
暂时没多少体会,后续领悟吧。
网络爬虫
这年头网络爬虫无处不在,很多都是基于python开发,包括谷歌的爬虫。这是爬虫工程师的必备工具。

六、哪些地方在用Python
来几个鲜活的知名公司应用案例,以示敬意:

谷歌:Google app engine、google earth、爬虫、广告等
Youtube: 世界最大的在线视频网站基于python开发,好强大
Instagram:美国最大的图片分享网站,全部基于python开发
facebook:大量的基础库基于python开发
Redhat:yum包管理工具基于python开发

原文地址:https://www.cnblogs.com/baijinpython/p/12079575.html

时间: 2024-10-16 01:31:48

Python是什么?你真的了解Python吗?的相关文章

你真的了解Python吗 ---Python的内存管理

请看下面的一段代码: origin = {'a':100,'b':[1,2,34,5]} obj_copy ={}; print origin; obj_copy['key1']= origin; obj_copy['key2']= origin; print(obj_copy) print('我们试图改变obj_copy中某个Key值的内容') obj_copy['key1']['a'] = 10000 print(obj_copy) obj_copy['key1']['b'] = "hell

你真的了解python中的换行以及转义吗?

python中的分号 在python中默认是以换行来标志一行语句的结束. a = "xxxx" print(a) # xxxx 这段代码很简单,因为a =?"xxxx"后面已经没有内容了是一个换行,那么就代表这个语句结束了.但是在python中我们还可以指定分号,来指定该语句结束了. a = "xxxx" ; print(a) ; b = 1; print(b) # 输出内容 """ xxxx 1 "&qu

Python趣味入门01:你真的了解Python么?

小牛叔倾情出品,史上更简单有趣的Python入门系列教程,用认真.上心的原创带你飞. 0.Why Python ? 什么入门用python,其实这和它的气质有关,根据CHM(计算机历史博物馆)网站介绍[1],Van Rossum 曾经在1999年陈述过创造Python的动机,“她”应该是这样: - “她” 简洁而直观,功力却能比肩同僚. - “她” 坦诚而开源,方能博采众家所长. - “她” 亲切而易懂,孩童级的英语足矣. - “她” 贴心而实用,日常杂事速战速决. —放羊的小牛叔 Guido:

我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算是有一点基础.但在这里我要保持空杯心态,一切从头开始.好了不多说,Let's Python!!!! 一.Python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.目前Python已经成为实际上除了中国最流行的开发语

python学习(一)—简明python教程

2016-04-12 15:59:47 1. 介绍2. 安装Python3. 最初的步骤4. 基本概念5. 运算符与表达式6. 控制流7. 函数8. 模块9. 数据结构10. 解决问题——编写一个Python脚本11. 面向对象的编程12. 输入/输出13. 异常14. Python标准库15. 更多Python的内容 补充:简单的python爬虫程序 一.介绍 Python语言简单易学,功能强大,是一种解释性语言.它注重的是如何解决问题而不是编程语言的语法和结构,有高效率的高层数据结构.pyt

【Python】初学编程适合学Python?其有何用?

初学编程适合学Python?其有何用? 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多因素造成了,当然市场需求的重要因素.吴军博士对大数据流行的解释与python流行或许有些默契.数据一直以来都存在,只是在历史条件下,由于计算性能和技术发展的原因,与之匹配的数据处理技术还不是很先进,以至于很多数据被我们舍弃了.同样,python语言简洁流畅等多种优点,也会让第一次接触

python 学习第五天,python模块

一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py结尾的python文件(文件名:test.py,对应的模块名:test) (2)包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件) 2,导入的方法 (1)import module_name导入某个模块 (2)import module_name,module2_

Python回顾与整理2:Python对象

0.说明 说对象是面向对象编程语言最重要的一部分一点也不为过,没有了"对象",面向对象将无从谈起.Python也是如此,如果无法掌握对象,你很难有大的进步与提升. 1.Python对象 (1)对象特性 Python使用对象模型来存储数据,构造任何类型的值都是一个对象,所有的Python对象都拥有下面的三个特性: 身份:每个对象一唯一身份标识,可使用内建函数id()查看该值(可以认为这个值是该对象的内在地址) 类型:对象的类型决定了对象(可以保存什么类型的值,进行什么样的操作,遵循什么样

《python源码剖析》笔记 Python虚拟机框架

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1. Python虚拟机会从编译得到的PyCodeObject对象中依次读入每一条字节码指令, 并在当前的上下文环境中执行这条字节码指令. Python虚拟机实际上是在模拟操作中执行文件的过程 PyCodeObject对象中包含了字节码指令以及程序的所有静态信息,但没有包含 程序运行时的动态信息--执行环境(PyFrameObject) 2.Python源码中的PyFrameObject

《python源码剖析》笔记 python虚拟机中的一般表达式

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.字节码指令 LOAD_CONST:从consts表中读取序号为i的元素并压入到运行时栈中 STORE_NAME:改变local名字空间.从符号表names取序号为i的元素作为变量名, 取运行时栈的栈顶元素作为变量值,完成从变量名到变量值的映射关系的创建. BUILD_MAP:创建一个空的PyDictObject对象,并压入运行时栈 DUP_TOP:将栈顶元素的引用计数增加1,并将它再次