为啥百度、网易、小米都用Python?Python的用途是什么?

时间:2021-04-20 06:14:31

为啥百度、网易、小米都用Python?Python的用途是什么?

 

Python是一门脚本语言。由于能将其他各种编程语言写的模块粘接在一起,也被称作胶水语言。强大的包容性、强悍的功能和应用的广泛性使其受到越来越多的关注,想起一句老话:你若盛开。蝴蝶自来。

假设你感觉学不会?莫慌。小编推荐大家增加群。
前面516中间107后面834,群里有志同道合的小伙伴,
互帮互助。还能够拿到很多视频教程!

对于没有女朋友打电话嘘寒问暖的程序猿同志来说,研究Python大概是填补内心空虚的一个好选择,近期就有非常多朋友来找达妹咨询Python的用途和未来发展方向……

 

那干脆今天就和大家一起梳理一下Python语言究竟能做哪些事~

为啥百度、网易、小米都用Python?Python的用途是什么?

凌乱的桌子和与 Web 的设计理念说明

WEB开发

 

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

虽然眼下Python并非做Web开发的首选,但一直都占有不可忽视的一席。Python中有各类Web框架。不管是简单而能够*搭配的微框架还是全功能的大型MVC框架都一应俱全,这在须要敏捷开发的Web项目中也是十分具有优势的。

广泛使用(或曾经广泛使用)Python提供的大型Web服务包括知乎、豆瓣、Dropbox等站点。

加之Python本身的“胶水”特性。非常easy实如今须要大规模性能级计算时整合其他语言。同一时候保留Web开发时的轻便快捷。

使用Python中的Flask搭建一个Web版的Hello world。也仅仅须要几行而已:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == '__main__':
app.run()

 

除此之外,Python中还有大量“开箱即用”的模块,用于与各种其他站点的对接等相关功能。假设希望开发个微信公众号相关功能,wechat-sdk/weixin-python等包,能够使你差点儿全然不用管文档中提及的各种server交互细节,专注于功能实现即能完毕开发。

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

a、Django

Django是一个高级的敏捷web开发框架,假设学会了。撸一个站点非常快。当然假设纯粹比撸站点的速度,基于ruby的Ruby on rails显然更快。可是Django有一个优势就是性能优秀,更适合国内站点的应用场景。

国外的著名图片社区Pinterest早期也是基于Django开发的,承受了用户高速增长的冲击。所以说假设你想高速开发一个站点。还能兼顾APPclient的API调用需求,Django是能够信赖的。

b、 Flask

相对于Django,Flask则是一个轻量级的web框架。Flask的最大的优势是性能优越,适合配合手机client开发后台API服务。

国内基于Flask的Restful API服务这快非常火。也是需求最大的。

知名的比方百度、网易、小米、陌陌等等非常多公司都有基于Flask的应用部署。当然,假设你想做一个传统的web站点,还是建议使用Django,Flask的优势是后端、API,不适合构建全功能站点。

网络爬虫

网络爬虫是Python比較经常使用的一个场景,国际上,google在早期大量地使用Python语言作为网络爬虫的基础。带动了整个Python语言的应用发展。曾经国内非常多人用採集器搜刮网上的内容。如今用Python收集网上的信息比曾经easy非常多了。

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

为啥百度、网易、小米都用Python?Python的用途是什么?

人工智能现代计算概念

 

人工智能(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被广泛应用到机器学习领域的重要原因。

数据分析处理

 

数据分析处理方面,Python有非常完备的生态环境。

“大数据”分析中涉及到的分布式计算、数据可视化、数据库操作等,Python中都有成熟的模块能够选择完毕其功能。

对于Hadoop-MapReduce和Spark,都能够直接使用Python完毕计算逻辑。

这不管对于数据科学家还是对于数据project师而言都是十分便利的。

当中诸如Seaborn这种可视化库,能够仅仅使用一两行就对数据进行画图,而利用Pandas和numpy、scipy则能够简单地对大量数据进行筛选、回归等计算。而兴许复杂计算中,对接机器学习相关算法,或者提供Web訪问接口,或是实现远程调用接口,都非常简单。

import seaborn as sns
sns.set()
# Load the example tips dataset
iris = sns.load_dataset("iris")
# Plot tip as a function of toal bill across days g = sns.lmplot(x="sepal_length", y="sepal_width", hue="species",
truncate=True, size=5, data=iris)
# Use more informative axis labels than are provided by default
g.set_axis_labels("Sepal length (mm)", "Sepal width (mm)")

 

Python在数据分析处理中典型的应用量化交易。简单来说就是说借助于强悍的数学模型数据分析来实现利益最大化损失最小化,眼下已经有很多非常好的框架能够使用。

server运维及其他小工具

 

Python对于server运维而言也有十分重要的用途。由于眼下差点儿全部Linux发行版中都自带了Python解释器,使用Python脚本进行批量化的文件部署和执行调整都成了Linuxserver上非常不错的选择。

Python中也包括很多方便的工具。从调控ssh/sftp用的paramiko,到监控服务用的supervisor。再到bazel等构建工具,甚至conan等用于C++的包管理工具,Python提供了全方位的工具集合,而在这基础上。结合Web。开发方便运维的工具会变得十分简单。

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

桌面程序

 

除此之外,Python也能够用于桌面软件开发(如sublime text等)。甚至移动端开发(參看kivy)。Python简洁方便。各种工具包齐全的环境。能大幅度降低开发人员的负担。

著名的UI框架QT有Python语言的实现版本号PyQT。Python简单易用的特性加上QT的优雅。能够非常轻松的开发界面复杂的桌面程序,而且能轻松实现跨平台特性。

多媒体应用

 

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

曾经为“阿贝斯(Abyss)”、“星际迷航(Star Trek)”、“Indiana Jones”等超级大片制作过特技和动画的工业光魔公司(Industrial Light)就採用Python进行商业动画制作。然而在非常早曾经,Python就是一种游戏编程的辅助工具,在《星球大战》的制作中扮演了重要的角色,如今,全然能够通过Python写出非常棒的游戏程序。

Emmmmm这个举例不会暴露年龄吧……

最后。希望对Python感兴趣的朋友都能成为学霸和学神!