|
|
|
|
移动端

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

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

作者:菜鸟学Python来源:今日头条|2017-12-22 18:52

【新品产上线啦】51CTO播客,随时随地,碎片化学习

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

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

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

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是可以信赖的。

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

b、 Flask

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

2、网络爬虫

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

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

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

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

人工智能是现在非常火的一个方向,AI热潮让Python语言的未来充满了无限的潜力。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,为什么呢?因为Python足够动态、具有足够性能,这是AI技术所需要的技术特点。比如基于Python的深度学习库、深度学习方向、机器学习方向、自然语言处理方向的一些网站基本都是通过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访问接口,或是实现远程调用接口,都非常简单。

学习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,开发方便运维的工具会变得十分简单。

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

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

【编辑推荐】

  1. 2018年最具就业前景的7大编程语言:Java、Python、JavaScript前三,PHP也上榜!
  2. Python爬虫实战:抓取并保存百度云资源
  3. 如何基于Python建设企业认证和权限控制平台
  4. Python操作SQLite/MySQL/LMDB/LevelDB
  5. 5分钟快速入门,用Python做SQLite数据库开发,附代码适合初学
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

XML基础教程

本书分为8章。第1章主要对XML做了简单的介绍。第2章详细讲解规范的XML文件。第3章主要讲解有效的XML文件,特别重点讲解DTD文件。第4章讲解C...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊