当前位置: 首页 > 科技观察

学习Python要有明确的学习方向和开发工具的选择_0

时间:2023-03-15 16:39:11 科技观察

Python是一种脚本语言,因为它可以将其他各种编程语言编写的模块粘合在一起,所以也被称为胶水语言。强大的包容性、强大的功能和广泛的应用使其受到越来越多的关注。想起一句古话:花开自来,蝶自来。对于没有女朋友打电话询问身体状况的程序员同志来说,学习Python大概是填补内心空虚的一个不错的选择。最近有很多小伙伴来找小编咨询Python的用途和未来的发展方向……那么今天就和小编一起来梳理一下Python语言到底能做什么吧~1.WEB开发在中国,豆瓣从一开始就使用Python作为Web开发的基础语言。知乎的整个架构也是基于Python语言,这让web开发在中国发展的非常好。Python虽然不是目前Web开发的首选,但一直占据着不可忽视的一席之地。Python中的web框架种类繁多,无论是简单自由搭配的微框架,还是功能齐全的大型MVC框架,在需要敏捷开发的web项目中也很有优势。广泛使用(或曾经被广泛使用)的Python提供的大型Web服务包括知乎、豆瓣、Dropbox等网站。再加上Python本身的“胶水”特性,在需要大规模性能级计算时很容易集成其他语言,同时又保留了web开发的可移植性和速度。在Python中使用Flask构建Web版的Helloworld只需要几行:fromflaskimportFlaskapp=Flask(__name__)@app.route("/")defhello():return"HelloWorld!"if__name__=='__main__':app.run()此外,Python中还有大量“开箱即用”的模块,用于与其他各种网站对接等相关功能。如果你想开发微信公众号相关功能,wechat-sdk/weixin-python等包可以让你几乎完全忽略文档中提到的各种服务端交互细节,专注于功能实现来完成开发。目前国内Pythonweb开发主要有两种技术栈:DjangoDjango是一个先进的敏捷Web开发框架。如果你学会了,你可以很快地建立一个网站。当然,如果单纯对比网站的速度,基于ruby的Rubyonrails显然更快,但是Django的优势在于性能优秀,更适合国内网站的应用场景。国外知名的图片社区Pinterest,早期也是基于Django开发的,经受住了用户快速增长的冲击。所以如果你想快速开发一个网站,同时兼顾APP客户端的API调用需求,Django靠谱。b.与Django相比,Flask是一个轻量级的Web框架。Flask最大的优势在于其优越的性能,适合开发带有移动客户端的后台API服务。国内基于Flask的RestfulAPI服务很受欢迎,也是需求量最大的。百度、网易、小米、陌陌等知名公司都有基于Flask的应用部署。当然,如果你要做传统的网站,还是推荐使用Django。Flask的优势在于后端和API,不适合搭建全功能的网站。2.网络爬虫网络爬虫是Python常用的场景。在国际上,谷歌早期大量使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。以前国内很多人都是用采集器来搜索网上的内容,现在用Python采集网上的信息比以前容易多了,Python在这方面积累了很多工具,无论是模拟HTTP请求的Requests,HTMLDOM解析的PyQuery/BeautifulSoup,自动化分布式爬行任务的Scrapy,还是简化数据库访问的各种ORM,让Python成为最好的语言之一用于数据爬取。尤其是爬取后的数据分析和计算,是Python最擅长的领域,而且非常容易集成。目前Python比较流行的网络爬虫框架是非常强大的scrapy。3.人工智能(AI)和机器学习人工智能是现在很火的一个方向。AI热潮让Python语言的未来充满了巨大的潜力。现在发布的几个非常有影响力的AI框架,大部分都是用Python实现的。为什么?因为Python够动态,够性能,这是AI技术需要的技术特性。比如一些基于Python的深度学习库的网站,深度学习方向、机器学习方向、自然语言处理方向基本都是通过Python实现的。机器学习,尤其是当下流行的深度学习,其工具框架大多提供Python接口。Python在科学计算领域一直享有盛誉。其简洁明了的语法和丰富的计算工具深受该领域开发者的喜爱。早在Tensorflow等深度学习和框架流行之前,就有Python中的scikit-learn,可以轻松完成几乎所有的机器学习模型。只需要简单的几行代码,就可以下载经典数据集,构建模型。配合Pandas、matplotlib等工具,可以轻松调整。Tensorflow、PyTorch、MXNet、Keras等深度学习框架极大地拓展了机器学习的可能性。使用Keras编写手写数字识别的深度学习网络只需要几十行代码,并且可以利用底层实现轻松调用包括GPU在内的大量资源来完成工作。值得一提的是,不管是什么框架,Python只是作为前端描述的语言,实际的计算是通过底层的C/C++来实现的。由于Python可以方便地引入和使用C/C++项目和库来实现功能和性能扩展,这样的大规模计算让开发者更加关注数据本身的逻辑,并从内存分配等复杂任务中解放出来Python在机器学习领域得到广泛应用的一个重要原因。4、数据分析与处理在数据分析与处理方面,Python有着非常完善的生态环境。对于“大数据”分析中涉及的分布式计算、数据可视化、数据库操作等,Python都有成熟的模块可以选择完成其功能。对于Hadoop-MapReduce和Spark,都可以直接使用Python来完成计算逻辑。这对于数据科学家和数据工程师来说都是非常方便的。其中,Seaborn等可视化库仅使用一两行就可以绘制数据,而使用Pandas、numpy、scipy则可以对大量数据进行简单的筛选和回归计算。在后续的复杂计算中,与机器学习相关算法接口,或者提供web访问接口,或者实现远程调用接口,都非常简单。importseabornassnssns.set()#Loadtheexampletipsdatasetiris=sns.load_dataset("iris")#Plottipasafunctionoftoalbillacrossdaysg=sns.lmplot(x="sepal_length",y="sepal_width",hue="species",truncate=True,size=5,数据=iris)#Usemoreinformativeaxislabelsthanareprovidedbydefaultg.set_axis_labels("Sepallength(mm)","Sepalwidth(mm)")Python是数据分析处理中量化交易的典型应用。简单的说,就是利用强大的数学模型数据分析,将收益和损失降到最低,目前已经有很多好的框架可以使用。5、服务器运维等小工具Python对于服务器运维也是非常重要的。由于目前几乎所有的Linux发行版都有自己的Python解释器,因此使用Python脚本进行批量文件部署和运行调整成为了Linux服务器非常好的选择。Python也包含了很多方便的工具,从控制ssh/sftp的paramiko,到监控服务的supervisor,再到bazel等构建工具,甚至还有conan等C++的包管理工具,Python提供了全方位的工具,在此基础上,结合Web,开发方便运维的工具会变得非常简单。更有意思的是,Python社区的开发者还制作了itchat等开发工具包,你可以使用微信来管理服务器或各种服务的运行。想一想,微信机器人可以在异常发生时,或者每天固定时间上报服务器或程序的运行状态,甚至包括用matplotlib/seaborn绘制的图表,一目了然,你可以发送简单的一句话就可以完成服务器的调整。6、桌面程序此外,Python还可以用于桌面软件开发(如sublimetext等),甚至移动端开发(见kivy)。Python简单方便,各种工具包的环境可以大大减轻开发者的负担。著名的UI框架QT有一个Python语言PyQT的实现版本。Python简单易用的特性和QT的优雅使得开发界面复杂的桌面程序变得轻而易举,并且可以轻松实现跨平台特性。7、多媒体应用可以使用Python中的PIL、Piddle、ReportLab等模块处理图像、声音、视频、动画等,也可以使用Python生成动态图表和统计分析图表。此外,您可以使用PyOpenGl模块非常快速高效地编写3D场景。曾为《深渊》、《星际迷航》、《夺宝奇兵》等超级大片制作过特效和动画的IndustrialLight,使用Python进行商业动画制作。不过在很久以前,Python是游戏编程的辅助工具,在《星球大战》的制作中发挥了重要作用。现在,完全可以通过Python写出非常好的游戏程序。很多新手用户都迫不及待的开始写代码了,但是一个很现实的问题出现了,写代码应该用什么工具,快速好用,安装简单,美观大方(像找老婆,聊完客厅,说说厨房吧~~离得很远)。毕竟,工欲善其事,必先利其器。练武还是要选好兵器,所以我整理了一些Python开发工具,结合自己的经验,罗列了2款比较流行的工具,供大家参考。Python就像一本武术秘籍。要练习,你必须找到一个得心应手的武器。可以说选择一个好的开发工具是极其重要的。一个好的IDE会帮助你方便的编写Python程序,让你的编程更加得心应手。我用python好几年了,也陆续用过一些IDE。我觉得有两款神器非常适合初学者。推荐给大家,不好就别喷了。一款好的开发工具应该德才兼备:外形美观、功能强大、使用方便。下面两款就是这样的热门机型1.SublimeText:发烧友级Sublime一个字眼花缭乱,非常炫酷,用了之后视觉效果非常过瘾。现在已经到了SublimeText3。现在它是一个非常受欢迎的编辑器。基本上,它用于HTML、CSS和JS的前端开发。***很简单,二来插件库庞大,三来字体配色真漂亮(用了那么多工具,搜了他几千百度,一看回来,发现还是它的字体配色***看)当然,虽然优点很多,但也有一些缺陷,就是交互不是特别好,需要一些插件安装来弥补它。一般来说,Python开发必须安装:PackageControl、Emmet、PyV8、SublimeREPL(终端交互式调试)、SublimeCodeIntel(代码提示)2、Pycharm:如果只能推荐一个专业级的pythonIDE,那一定是Pycharm,因为它非常强大,而且很多功能(调试、语法高亮、项目管理、代码跳转、智能提示、自动补全、单元测试、版本控制)都是内置的,不需要安装额外的插件。最酷的是它的代码跳转非常实用。当你写一个大项目,几千行,里面有很多类和函数的时候,你需要它方便的跳转。而这个神器结合了Flask、Django、H5和AngularJS都包含在内。这样web开发就不需要再安装其他IDE了。另一个非常重要的功能是支持代码重构。相信有经验的coder都知道代码重构的重要性,就不多说了。以上两款是我强烈推荐的。工具必须得心应手。当然公司也有大牛用vim,然后接两个显示器写python,气场强大。开发java的同学用惯了Eclipse,可能会说Eclipse+pydev还不错。总之,开发工具是仁者智者开发的。关键是你喜欢,用得好。Python这么好用,大家想学也是情理之中~推荐专业的系统学习,现在网络这么发达,资料更新很快,完全自学可能会有偏差,所以推荐你要系统地学习。