人生苦短我用python[0x00] 为何要学python

人生苦短我用python[0x00] 为何要学python

<font color=red>文章内容为原创,欢迎转载请注明出处</font> php

做者: EflyPro->晦明禅师 java

文章来源:公众号“睿普Eflypro”python

python是什么?

编程开发语言有不少种,一般你们把开发语言划分为静态编译和动态解析语言,静态编译语言有咱们常见的c,c++等,动态解析语言有咱们常见的python,php等。静态编译语言其中一个明显的特征是:须要对源代码进行编译成可执行的二进制代码,变量须要定义成明确的类型;动态解析语言的特征是:代码由解析器进行解析并执行,变量类型能够在运行时动态定义。目前也有不少动态解析语言能够编译成二进制代码方式运行以提升效率,减小了由于解析器解析后执行带来的性能损失。语言之争一直是你们争论的问题,也是一个敏感的话题,本文的目的不在于给你们洗脑说明python是最好的语言,世上本没有最好的语言,只有最合适的语言和最好的程序员。本文只是经过介绍python,让你们认识到这门语言的优势,以及在工做生活中如何利用python解决问题。c++

python能够作什么?

若是把开发按照层次划分的话,能够分红系统开发(主要是一些系统×××的,好比网络服务,文件服务,系统调用等);业务逻辑开发(主要是一些业务逻辑的,好比计费,财务,权限等具体跟操做系统或者底层关系不大的)。python不管在系统开发仍是业务开发方面,都可以很好地知足开发者的需求,帮助开发者顺利完成任务,这不只得益于python语言自己的特性,还有赖于丰富的官方和第三方模块库。程序员

咱们能够看一下python常见的模块web

  • webpy模块,用它只须要几行代码就能够实现一个web服务器
  • SocketServer模块,用它能够很方便地开发本身的tcp,udp服务器
  • subprocess模块,用它能够建立和管理进程
  • threading模块,用它能够建立和管理多线程
  • queue模块,是一个线程安全的队列
  • json模块,这个一看就知道是用来处理json数据的了
  • logging模块,这是一个日志模块
  • shutil模块,这是一个文件管理模块,包含了文件的基本操做
  • urllib模块,是一个http的经常使用模块
  • 还有不少不少标准和非标准的模块,只有你想不到

为了更好地管理python模块,python还有专门的模块管理工具,像centos的yum那样能够查找,安装须要的模块,python包管理工具最多见的有pip,关于查找,安装,使用模块,咱们会在之后的python系列文章讲述。算法

python作了些什么?

了解了python能够作一些什么以后,那你们会问在实际工做中,有那些东西是用python写的,下面我会你们介绍一些比较出名的用python写的项目,以增长你们对python的信心及前途。编程

  • BitTorrent,知名BT下载软件
  • OpenStack,开源云平台框架
  • Yum,CentOS的包管理工具
  • google内外部大量服务使用python开发,如gmail,earth,maps等
  • 豆瓣,国内出名的社区,python是豆瓣的主要开发语言

更多python成功案例请点击这里json

为何要学python

看了以上两点以后,我以为还不足以打动你们去学习python,下面这节就讲述为何要学python,以及那些人适用python,在讲述以前请你们先看一张图小程序

人生苦短我用python[0x00] 为何要学python

人生苦短我用python

下面咱们一直会围绕这句话来开展讨论的内容,假如你是一个有老婆,孩子的开发人员(你老婆很漂亮,你孩子很可爱,这个很关键,再记住你是有老婆,孩子的人了),周五快下班了,你约了老婆孩子去一家很难预定的餐厅吃饭,忽然接到老板的任务,要你去作一个小程序,大概功能就是扫描服务器指定目录下(这个目录下面还有子目录)的文件,并检查文件开头1KB内容里面是否包含了某些关键字,若是包含则把这个文件删除。老板说这个很紧急,由于服务器磁盘撑爆了,必需要删除文件才行,可是距离下班只有不到30分钟了。

做为一个c,c++开发人员,你要考虑是用递归呢仍是非递归来枚举文件夹下面的文件,枚举完了,你还要分配个内存读取文件开头的1KB内容,还要研究字符串查找匹配的算法,别忘了,搞完以后要释放内存,关闭文件句柄,结果写以前花了很多时间构思,写完了,又花了很多时间调试,还不包含是否出现内存越界等致使程序崩溃的bug,结果要加班,不能陪老婆孩子去吃饭了。

做为一个java开发人员,你比较幸福,少了c,c++的内存泄露,忘记关闭句柄的烦恼,不过你还须要想一想这里面有多少个能够抽象成类的东西,接口怎么设计,找找java有没有现成的包能够用,而后折腾一下编译java项目,而后调试,结果你可能只须要加班一点点时间就能赶住配老婆孩子吃饭了。

做为一个python开发人员,我知道枚举文件夹目录下的文件能够用os模块里面的listdir函数,返回一个list列表,用open打开文件而后直接read数据,用字符串find函数能够找是否有匹配的关键字,别忘了python还有一个with功能,我with open文件以后我就不用管后面的异常和是否关闭文件句柄了,with会帮我擦屁股,最后调用os模块的remove函数删除文件就能够了。最后,这位python开发人员准时完成任务下班配老婆孩子吃饭并获得老板的称赞。

以上纯粹YY,不过从这样一个YY的故事能够侧面反映出一种现象,不少东西,咱们能够用比较简单快捷的python来完成任务,没有必要动不动就用c,c++这些语言。人生的时间很宝贵,应该把时间浪费在美好的事情上面,python有不少现成官方,第三方的库,都是平时你们在工做中提炼出来,都是复用性很高并且很稳定的,再加上python自己的特性能够免去好比c,c++的一些蹩脚的地方,好比容器,字符串操做等容易出现泄漏,越界的问题。最后,这个故事没有黑c,c++,java语言的意思,每一种语言都有各自擅长的地方,可是咱们应该多学习一种顺手方便的语言,来解决一些小问题,小事情,把有限的精力花在重要的地方去。

python既能够完成大的项目也能够完成小任务,因此不管是开发人员,仍是运维人员,均可以用python来解决工做中的大大小小问题,同时许多API或者库对python支持都很是良好,特别是一些自己就用python写的库,原生就支持python接口的。

怎么学python

讲了这么多,这里先简单概要说一下怎么学python,其实也简单,不管学什么语言无非就是多练手,多写代码,多看别人的代码。之后的python系列会慢慢讲python的学习和使用,若是你看了这篇文章后有兴趣想学这门语言,能够先用python来尝试解决实际工做生活中的问题,边学边写些小程序,我以为这是学好一门语言最好的办法,用多了,你天然会喜欢上它和熟悉它。

最后但愿你们继续关注 <<人生苦短我用python>> 系列文章,关注咱们的官方微信“睿普Eflypro”,谢谢!

阅读原文请点击这里

转载于:https://blog.51cto.com/13475644/2052496