“晓白”学python-科普篇(2)-人们都用python做什么?

系统 225 0

上一小节里面,老袁给晓白讲了python是什么,python的由来,发展历程,崛起和python的特点。这一小节里面,老袁会告诉晓白人们都用python来做什么。

          “我刚刚说了,python的特点之一就是应用领域广泛,那人们一般用python做什么呢?接下来我就给你讲讲python常见的应用领域。”老袁说完,继续进行讲解。

 

web 领域

python在web领域有着广泛的应用,那首先我们简单说一下什么是web, web 也就是大名鼎鼎的world wide web(万维网)的简称,万维网是基于http协议进行交互的应用网络,说的更通俗一点就是我们用浏览器访问的网站,或者我们移动端上面的微信公众号,小程序,甚至一些基于H5技术制作的手机APP都可以称为Web应用。

Web 应用主要可以分成两个部分,一个就是我们经常听说的Web前端,Web前端主要就是采用的H5,JS,CSS,以及各种各样的框架开发出来的PC端或者移动端的前端页面(也就是我们访问一个网站能够直接看到的部分)。还有一个部分就是Web后台,Web后台主要为前端提供展示和交互的数据,实现数据的存储,前端页面的数据渲染,后台的处理逻辑以及和前端的交互。

Python 语言以及基于Python语言的一些成熟的web开发框架为后台开发提供了一条简单便捷的道路,通过使用像Django,Flask等后端开发框架,开发者可以快速有效的构建自己的后台系统。像国内大名鼎鼎的豆瓣网以及国外的FaceBook都是采用的python语言来进行Web后台的开发。而一些使用python开发的类似于博客系统,购物网站,教学平台的项目更是数不胜数。而现在基于移动端的app,微信公众号和小程序有很多也是基于python开发的。

相对而言,国内的公司对python的web开发技能需求量是比较大的。除了一些专门的web后台开发工程师需要web开发技能,像爬虫,自动化运维,自动化测试等岗位也需要不同程度的掌握一定的web开发技能,从而可以在服务器构建爬虫,自动化平台等。

“晓白”学python-科普篇(2)-人们都用python做什么?_第1张图片

 

爬虫领域

这里的爬虫不是做一个电子爬虫这样的小宠物,也不是做一个爬虫吃豆这样的游戏。我们这里说的爬虫实际上是网络爬虫,而它最主要的功能是从互联网上获取你想要的数据,并且是可以在不同的页面间进行跳转,爬取相关数据,就像是一只虫子在互联网这个大网上面的某个局部网络不断的获取数据,我们把这样的一类程序称为爬虫。通过爬虫程序可以可以批量的获取我们想要的文章,图片,视频或者各类数据。通过爬虫抓取到大量的数据后,我们可以进一步对这些数据进行分析。

python语言本身天然就支持爬虫程序的编写,因为其内置了像urllib这样的网络操作库,可以方便的从网络上获取数据。并且python也支持正则表达式,可以快速的抽取匹配有特定特征的数据。当然如果你觉得正则太难,你完全可以使用像Beatiful Soup或者lxml里面的xpath这样的第三方模块来直接从页面的Dom树中抓取想要的信息,更加简单和快捷。

当然,python的爱好者们也没有忘记给流行的爬虫开发一个现成的框架,这个就是大名鼎鼎的Scrapy框架。通过Scrapy框架,我们可以快速的开发爬虫程序,把侧重点放到具体数据获取的分析上,至于爬取后数据的存储,爬虫管道这些事情,交给框架去做就行了。

最后,通过python也可以支持分布式爬虫,多代理服务器爬虫,反反爬技术等。可以说,爬虫程序中你能想到的或者想不到的,python都可以支持。正是因为python对爬虫的支持,大量的商业爬虫(金融行业较多)程序的编写都采用了python开发。下图展示了python爬虫开发需要掌握的技能和工具。

“晓白”学python-科普篇(2)-人们都用python做什么?_第2张图片

 

桌面应用软件

应用软件主要是指我们pc电脑上执行的应用程序,从形态上来看,这样的应用程序分为不带界面的和带界面两类。而这两类应用程序都可以使用python进行开发。我们学习中平时的一些小练习都是不带界面的应用程序,这类程序将执行的中间过程或者结果输出到cmd中或者文件中,以便用户进行查看。而python本身自带tkinter图形界面开发库以及第三方的pyqt图形开发库为python的图形界面开发提供了强大的支持,让开发者可以利用python开发出各种界面精美,交互性强的gui程序。

从功能上来看,PC端的应用程序主要分为如下几种类型,以下分别介绍Python在如下几种类型应用开发中的使用:

多媒体应用

python本身就提供了多媒体操作的库,可以直接从python库来操作图片,视频,音频。如果你觉得python自带的多媒体库不够用,那还可以使用强大的多媒体框架pyglet,pyglet支持windows,mac os,linux等多种操作系统,可以操作几乎所有格式的图片,可以播放所有的音频和视频,关键它还是免费的。有这么强大的库支持,用python编写多媒体应用还是比较容易上手的。

网络应用

因为python天然支持socket接口的编程,同时提供了低级socket接口和高级的socket服务器编程接口,可以方便的做为客户端和服务器端访问网络。python也提供了常用网络操作的库函数,如urllib提供了http访问的库, ftplib 提供了ftp操作的库, smtplib poplib imaplib 提供了发送邮件,接收邮件和获取邮件的库。正是如此多的网络操作库,让我们可以方便的使用python实现常用的网络应用编程。

游戏编程

使用python的pygame库可以快速方便的开发出各类小型游戏。如果你想开发出3D游戏或者3D应用,可以使用python的openGL库。像知 名游戏 《文明4 ,《战地2》都是用python开发的。

python本身也支持多线程和多进程操作,可以方便的编写出支持多线程和多进程的程序。

办公自动化脚本

由于python可以直接对excel,word文档等文件进行操作,所以可以使用python编写一些自动化处理的脚本,可以直接操作excel对办公数据进行统计和录入,可以大大提高工作效率。

 

“晓白”学python-科普篇(2)-人们都用python做什么?_第3张图片

 

自动化运维应用

因为python本身就是一种脚本语言,所以可以编写自动化运维中的脚本程序。除了编写简单的脚本,还有很多自动化运维的工具是用python开发的,如fabric,通过使用这些工具,能够方便的自动登录服务器进行各种操作,可以大大简化运维程序的编写,并提高运维的效率。

自动化测试应用

使用 Python selenium 自动化测试工具,可以快速的实现自动化测试应用的编写,大大提高自动化测试的效率。

科学计算和数学分析

科学计算也被称作计算科学(computational science)或科学计算法(scientific computation),其主要思路是开发数学模型,通过量化分析技术和计算机解决科学问题。python中的numpy和SciPy这样的科学运算库,可以方便快速的解决大多数场景下的数学问题,SymPy程序具有符号计算的功能,可以实现基本算术、代数、积分、离散数学、量子物理等学科的符号计算。matplotlib程序库为Python/NumPy提供画图功能,可以画出类似于线性图、直方图、散点图以及3D图,让科学运算的结果更加直白易懂。

现在很多公司都在使用python来进行数学分析,比较典型的一个数学分析场景应用是股票量化分析,通过分析股票的历史数据,来预测股票的未来涨跌情况。

我们可以结合python的web开发能力开发一个服务器后台,在后台上再构建一个爬虫用来爬取数据,爬取到数据以后我们可以使用python的数学分析库对数据进行量化分析,然后将数据以各种形式展示到前端页面,最终全部用python构成一个完整的数据获取分析展示系统。

AI 应用

AI涉及的领域非常的广泛,包括语音识别和语音合成,图像的识别和合成,舆情分析,语义分析,情感分析等非常多的领域。

那么 谁会成为 AI 和大数据时代的第一开发语言?这本已是一个不需要争论的问题。如果说三年前, Matlab 、 Scala 、 R 、 Java 和 Python 还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是Facebook 开源了 PyTorch 之后, Python 作为 AI 时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅。

python ai 应用里面最火的可能算是tensorflow了,它是谷歌基于DistBelief进 行研发的第二代人工智能学习系统 ,是大名鼎鼎google 阿法狗技术团队开源出来的项目。

硬件编程

著名的开源硬件树莓派支持python语言,你可以用python语言控制树莓派的硬件接口,开发出各种有趣的智能硬件应用。比如,在国外有人用树莓派结合一个摄像头通过python编程结合人工智能的人体识别来监控谁偷了他冰箱里的啤酒。现在非常流行的stm32单片机也开始支持python语言了。

 

“怎么样,是不是大开眼界?python的应用领域够广泛吧。而且随着python语言和时代的发展,更多的领域也会用python来解决问题。”老袁说完,问晓白。

 

“真的是大开眼界了,python真是不愧有着“万能”语言的称号。听了您讲的内容,我觉得学习,工作和生活中都有很多地方可以用到python。不过python有这么多的应用领域,那在实际的公司里面,都有哪些和python相关的工作岗位呢?”晓白问出了一个自己非常关心的问题。

 

“正好下一个部分我就打算给你讲讲国内python岗位的现状。和python有关的工作岗位以及具体有哪些需求。”老袁说完,就准备开始讲下一个部分的内容了。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论