当前位置:  开发笔记 > 编程语言 > 正文

python编程学来做什么

学python编程可以做WEB开发、网络爬虫、人工智能与机器学习、数据分析处理、服务器运维及其它小工具、桌面程序、多媒体应用等。

python编程学来做什么?

1 WEB开发

在国内,豆瓣一开始就使用Python作为web开发基础语言,知乎的整个架构也是基于Python语言,这使得web开发这块在国内发展的很不错。

尽管目前Python并不是做Web开发的首选,但一直都占有不可忽视的一席。Python中有各类Web框架,无论是简单而可以自由搭配的微框架还是全功能的大型MVC框架都一应俱全,这在需要敏捷开发的Web项目中也是十分具有优势的。广泛使用(或曾经广泛使用)Python提供的大型Web服务包括知乎、豆瓣、Dropbox等网站。加之Python本身的“胶水”特性,很容易实现在需要大规模性能级计算时整合其它语言,同时保留Web开发时的轻便快捷。

除此之外,Python中还有大量“开箱即用”的模块,用于与各种其它网站的对接等相关功能。如果希望开发个微信公众号相关功能,wechat-sdk/weixin-python等包,能够使你几乎完全不用管文档中提及的各种服务器交互细节,专注于功能实现即能完成开发。

目前,国内的Python web开发主要有两个技术栈:

(1)Django

Django是一个高级的敏捷web开发框架,如果学会了,撸一个网站很快。当然如果纯粹比撸网站的速度,基于ruby的Ruby on rails显然更快,但是Django有一个优势就是性能优秀,更适合国内网站的应用场景。国外的著名图片社区Pinterest早期也是基于Django开发的,承受了用户快速增长的冲击。所以说如果你想快速开发一个网站,还能兼顾APP客户端的API调用需求,Django是可以信赖的。

(2)Flask

相对于Django,Flask则是一个轻量级的web框架,Flask的最大的优势是性能优越,适合配合手机客户端开发后台API服务。国内基于Flask的Restful API服务这快很火,也是需求最大的。知名的比如百度、网易、小米、陌陌等等很多公司都有基于Flask的应用部署。当然,如果你想做一个传统的web网站,还是建议使用Django,Flask的优势是后端、API,不适合构建全功能网站。

2 网络爬虫

网络爬虫是Python比较常用的一个场景,国际上,google在早期大量地使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。以前国内很多人用采集器搜刮网上的内容,现在用Python收集网上的信息比以前容易很多了。

Python在这个方面有许多工具上的积累,无论是用于模拟HTTP请求的Requests、用于HTML DOM解析的PyQuery/BeautifulSoup、用于自动化分布式爬取任务的Scrapy,还是用于最简化数据库访问的各种ORM,都使得Python成为数据爬取的首选语言之一。特别是,爬取后的数据分析与计算是Python最为擅长的领域,非常容易整合。目前Python比较流行的网络爬虫框架是功能非常强大的scrapy。

3 人工智能与机器学习

人工智能是现在非常火的一个方向,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完成计算逻辑。这无论对于数据科学家还是对于数据工程师而言都是十分便利的。

5 服务器运维及其它小工具

Python对于服务器运维而言也有十分重要的用途。由于目前几乎所有Linux发行版中都自带了Python解释器,使用Python脚本进行批量化的文件部署和运行调整都成了Linux服务器上很不错的选择。Python中也包含许多方便的工具,从调控ssh/sftp用的paramiko,到监控服务用的supervisor,再到bazel等构建工具,甚至conan等用于C++的包管理工具,Python提供了全方位的工具集合,而在这基础上,结合Web,开发方便运维的工具会变得十分简单。

更有意思的是,Python社区的开发者们还制作了诸如itchat这样的开发工具包,你大可以用微信来管理服务器或是各种服务的运行。想想看,一个微信机器人,能够在出现异常时,又或者每天固定时刻汇报服务器或是程序运行情况,甚至包含用matplotlib/seaborn绘制的图表,一目了然,而你对它发上简简单单一句话,即可完成对服务器的调整。

6 桌面程序

Python也可以用于桌面软件开发(如sublime text等),甚至移动端开发(参看kivy)。Python简洁方便,各种工具包齐全的环境,能大幅度减少开发者的负担。著名的UI框架QT有Python语言的实现版本PyQT。Python简单易用的特性加上QT的优雅,可以很轻松的开发界面复杂的桌面程序,并且能轻松实现跨平台特性。

7 多媒体应用

可以用Python里面的PIL、Piddle、ReportLab 等模块对图象、声音、视频、动画等进行处理,还可以用Python生成动态图表和统计分析图表。另外,还可以利用PyOpenGl模块非常快速有效的编写出三维场景。

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有