当前位置:首页 > 新闻中心 >

Python初探

编辑:北京飞炫空间展览展示有限公司 时间:2017-09-08 21:38:32阅读次数:2
Python初探

之前很长的一段时间里,无论写什么程序,我都是使用C++,因为C++非常强大,从底层到上层都可以搞。底层方面C++对C兼容、支持内联汇编,可以开发嵌入式程序、驱动程序、操作系统,上层方面C++支持面向对象,有非常丰富的程序库,足以开发出任何程序。C++使用QT、Android NDK等工具可以开发手机应用,使用CGICC等工具可以开发Web程序。但用C++来开发手机应用和Web程序并不是个好选择,也没有多少人这样做。C++什么都可以搞,但不意味着什么都可以方便的搞。选择合适的语言工具来开发相应的程序,发挥出每种语言在各个领域的优势,并让各种语言分工合作才是王道。

刚开始踏入编程这一行的时候,我选择的是C/C++语言作为入门语言,因为对底层的东西比较感兴趣,并且打算将来搞嵌入式、驱动程序、虚拟机、操作系统或服务器方面的开发。在使用C/C++开发程序的过程中,经常与系统API打交道,甚至突破系统API的限制实现了操作系统没有公开提供一些功能,感觉非常爽快。后来有一段时间用C#重写我的一些C++程序的时候,由于.NET里没有提供我想要的那些功能(毕竟C#是微软用来和JAVA竞争的语言,.NET里封装的最多的还是那些用于上层应用开发的工具库),需要大量的调用系统API,本来在C++下调用系统API一句话就能搞定的东西,在C#下需要声明一大堆东西,还需要处理类型转换和指针的问题,结果就是代码写起来非常恶心,从那以后就对C#没有什么好感。不过C#给我印象较好的一点就是上层工具库很丰富,调用简单。之前在写一些XX管理系统的作业的时候,用winform,哗哗哗,各种控件往上拖,改一改属性,关联一下数据库,基本代码都没写,数据库中的数据就以报表形式显示在界面上了。不过我对XX管理系统之类的企业应用开发和Web程序开发之类的上层应用开发兴趣不大,所以就没有继续深入学习C#了。

话说回来,虽然C/C++在底层方面开发的能力很强,但它并不是一门开发效率高的语言,毕竟运行效率与开发效率不可兼得,没有什么东西能兼顾方方面面做到十全十美,凡事有得必有失。这样一来,在写一些比较上层的功能的时候,就感觉很累,很吃力,所以一直想找一门语言与C/C++配合工作,发挥C/C++在底层的优势并能提高开发效率。于是我便打开最近的编程语言排行榜,从上至下看一看选择什么语言作为我的第二编程语言比较好。首先是JAVA和C#,由于对移动应用开发、企业应用开发、Web开发兴趣不大,所以否决掉了,并且好像也没有多少领域需要JAVA与C/C++合作或C#与C/C++合作。然后是Objective-C,由于不准备搞移动应用开发,当然也包括IOS的移动应用开发,所以否决掉了。接下来是Python、Javascript、PHP、VB.NET、VB,VB就不说了,VB.NET的话不如搞C#了,PHP和Javascript主要用于Web开发方面,所以都否决掉了,那排名前10的语言就只剩Python了。10名以后的语言由于用的人不是很多(不火),或者是领域特定语言,采集软件,或是由于我孤陋寡闻不认识,所以就都否决掉了。

粗略了解了一下Python,是一门脚本语言,开发效率比C#、JAVA还高,并且能和C/C++很好的结合在一起,那当然是最佳之选了。之前就听很多人推荐Python,一直以为不就是一门脚本语言嘛,脚本语言那么多,Python能牛到哪去,而且看了下Python写的代码,发现语法与C的语法有不少差别,感觉怪怪的,就没有去过多了解。后来找了几本书学了下,并且动手写了写代码,顿时大吃一惊,原来程序也可以写得这么简洁方便。

马上动手用Python写了一个从Web上爬取数据的小程序,再和以前用C++写过的同样功能的程序对比了一下,顿时倒吸一口凉气,裤裆一下子就湿了——吓尿了。在此贴出这段Python代码,只用了10多行就实现了从爱密码网上爬取每天最新发布的共享迅雷会员账号密码。

import urllib.request import re def get_member(): response = urllib.request.urlopen("http://521xunlei.com/portal.php") html = str(response.read(), 'gbk') result = re.search(r'

', html) if result is None: return None url = r'http://521xunlei.com/' + result.group(1) response = urllib.request.urlopen(url) html = str(response.read(), 'gbk') pattern = re.compile(r'(?:账号共享|迅雷会员账号分享|迅雷号|迅雷账号|迅雷共享号|迅雷会员账号|共享账号)([a-zA-Z0-9]+?:[12]).*?(?:分享密码|密码分享|首发密码)(.+?)(?:)') result = pattern.findall(html) if len(result) == 0: return None else: return result

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:湖北SEO http://hubei.4567w.com

上一篇:IBatis.net介绍 下一篇:最后一页

相关阅读