学习Python,你应该明确的学习方向以及开发工具的选择

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

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

对于没有女朋友打电话嘘寒问暖的程序员同志来说,研究Python大概是填补内心空虚的一个好选择,最近就有很多朋友来找小编咨询Python的用途和未来发展方向……那干脆今天就和大家一起梳理一下Python语言到底能做哪些事~

[[214315]]

1、WEB开发

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

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

使用Python中的Flask搭建一个Web版的Hello world,也只需要几行而已:

  1. from flask import Flask 
  2.  
  3. app = Flask(__name__) 
  4.  
  5. @app.route("/"
  6.  
  7. def hello(): 
  8.  
  9. return "Hello World!" 
  10.  
  11. if __name__ == '__main__'
  12.  
  13. app.run() 

 

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

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

a、Django

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

[[214316]]

b、 Flask

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

2、网络爬虫

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

[[214317]]

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

3、人工智能(AI)与机器学习

人工智能是现在非常火的一个方向,AI热潮让Python语言的未来充满了***的潜力。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,为什么呢?因为Python足够动态、具有足够性能,这是AI技术所需要的技术特点。比如基于Python的深度学习库、深度学习方向、机器学习方向、自然语言处理方向的一些网站基本都是通过Python来实现的。

[[214318]]

机器学习,尤其是现在火爆的深度学习,其工具框架大都提供了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访问接口,或是实现远程调用接口,都非常简单。

学习Python,你应该明确的学习方向以及开发工具的选择

 

  1. import seaborn as sns 
  2.  
  3. sns.set() 
  4.  
  5. Load the example tips dataset 
  6.  
  7. iris = sns.load_dataset("iris"
  8.  
  9. # Plot tip as a function of toal bill across days g = sns.lmplot(x="sepal_length", y="sepal_width", hue="species"
  10.  
  11. truncate=Truesize=5, data=iris) 
  12.  
  13. # Use more informative axis labels than are provided by default 
  14.  
  15. g.set_axis_labels("Sepal length (mm)""Sepal width (mm)"

 

Python在数据分析处理中典型的应用量化交易,简单来说就是说借助于强悍的数学模型数据分析来实现利益***化损失最小化,目前已经有许多很好的框架可以使用。

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

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

[[214319]]

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

6、桌面程序

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

7、多媒体应用

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

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

学习Python,你应该明确的学习方向以及开发工具的选择

很多小白用户已经迫不及待的开始编写代码,但是一个很现实的问题出现了,到时该用什么工具去写代码,既快速又好用,安装方便,长的美观大方(好像找媳妇,出了聊厅堂,进的聊厨房~~扯远了).毕竟工欲善其事,必先利其器。修炼武功还是要选一个称手的兵器,于是我整理了一些Python的开发工具并结合我自己的经验,列出了2种***人气的工具给大家参考

Python就像一本武林秘籍,想要修炼起来,一定要找一个顺手的兵器,可以说挑选一个好的开发工具是极其重要的,一个好的IDE会帮助你方便地编写Python程序,使你的编程更加舒适。

我用python已经有好几年了,中间陆陆续续用过一些IDE,我觉得有2款神器是非常适合初学者的,用了之后感觉就像行云流水,爱不释手,写起代码来非常的爽~~ 推荐给大家,不好勿喷

一个好的开发工具应该是德才兼备:长的要漂亮,功能要强大,使用要简单,下面这2个都是这样的爆款

1.Sublime Text:发烧友级

Sublime 一个字就是炫,非常的酷,用了之后视觉效果上非常享受的。现在已经到Sublime Text3了.而且现在是非常流行的编辑器,基本上前端开发HTML、CSS、JS都用它。

***它非常简洁,第二有庞大的插件库,第三字体配色实在是太好看了(我用了这么多工具,众里寻他千百度,蓦然回首发现还是它的字体配色***看)

当然优点虽然很多,但也是有一些缺陷,就是交互不是特别的好,需要装一些插件来弥补,一般来说python 开发必装的有:

Package Control,Emmet,PyV8,SublimeREPL(终端的交互调试),SublimeCodeIntel(代码的提示)

学习Python,你应该明确的学习方向以及开发工具的选择

2.Pycharm:专业级

如果说只能推荐一款python IDE,那么非Pycharm莫属,因为它的功能非常强大,

而且很多功能(调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制)这些已经都已经内置了,不用另外安装插件。最爽的是它的代码跳转非常实用,当你写一个大几千行的项目,里面的类,函数很多的时候,就需要它方便的跳转.

而且这款神器结合了 Flask,Django,H5,AngularJS 都包含了。这样对于web开发就不用再安装其他的IDE了。

另外还有一个非常重要的功能就是支持代码重构,相信资深码农都知道代码重构的重要性,我就不多说了。

学习Python,你应该明确的学习方向以及开发工具的选择

以上2款是我强烈推荐的,工具一定要顺手,当然公司也有大牛用vim,然后接了2个显示器写python,气场强大.开发java的同学用惯了Eclipse,也许会说Eclipse+pydev也不错

总之,开发工具仁者见仁智者见智,关键是自己喜欢,用的爽就好.

这么好这么有用的Python,大家想要学习也就在情理之中啦~小编比较推荐进行专业系统的学习,现在网络这么发达,信息更新很快,完全自学有可能出现偏差,所以推荐你们系统学习。 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2010-03-01 15:57:59

Python开发工具

2020-11-19 10:05:03

Java

2009-07-03 12:59:50

Java ServleJSP开发工具

2015-05-07 10:23:19

Android学习资源

2013-01-18 08:53:27

Android开发学习Android

2010-07-14 13:18:40

Perl开发工具

2010-02-24 14:53:33

Python开发工具

2017-12-22 10:48:00

AI深度学习迁移学习

2014-09-12 11:35:23

开源

2010-02-24 10:57:19

Python开发工具

2010-03-15 15:55:00

Python开发工具

2010-01-11 15:02:10

Visual C++

2015-04-02 09:39:39

移动开发开发工具APP

2019-04-24 08:34:46

编程语言PythonJava

2019-12-17 09:36:16

JavaPython编程语言

2022-11-05 08:14:25

开发工具浏览器

2015-07-14 10:11:48

前端框架语言

2010-03-10 09:55:56

Python开发工具

2010-03-19 16:08:07

Python 代码开发

2023-11-02 08:32:11

机器学习人工智能
点赞
收藏

51CTO技术栈公众号