最近我在Reddit上讨论了为什么有人会使用Python而不是其他编程语言。这个讨论非常好,因此我想写一篇关于它的文章。
首先,让我告诉你我对Python的看法。Python是我喜欢的一种语言,可以用于各种各样的应用,虽然我同意这种语言有它的缺点,但我确实相信它是一种适合专业人士使用的伟大语言,也适合初学者进入迷人的编程世界。
说到这里,我是否会在每一个项目上都使用Python?可能不会!但有一些领域是Python所擅长的,我想强调这些领域,并解释为什么。
API开发
数据科学/人工智能
脚本
让我们详细地回顾一下。
API开发
有一些用Python进行API开发的优秀框架,在这些框架中,有两个在开发社区中最受欢迎的,即Django和Flask。
围绕着API开发的谈话立即进入了网络框架的方向,为什么?嗯......我不相信当你想专注于为你的API编写代码时,你应该编写你自己的网络服务器或框架。
有些人还主张将Python用于一般的web开发,尽管我一般不喜欢在前端部分使用这些框架,我更喜欢使用React或其他任何像VueJS或Ember这样的框架来构建前端。
如果你开始使用Python的API开发,你很可能最终会使用Django或Flask,所以你可能会问,我应该使用这两个中的哪一个?
DjangoVSFlask
这两个框架都很好,在大多数情况下都可以使用,但是,它们遵循不同的理念,有些人喜欢其中一个而不是另一个,双方都有充分的理由。由于这两个框架在本质上是如此的不同,我将只给你这两个框架的高层次区别,我建议你在决定哪个是最适合你和你的项目之前,阅读更多关于它们的信息,并尝试它们两个。
哲学。
Flask是一个简约的框架,它提供了简单性、灵活性和细粒度的控制。它是非常没有主见的(你可以用它做你想做的事!)。
相反,Django则是一个包罗万象的框架。你可以得到所有的库、管理面板、数据库接口、ORM,甚至是一个坚实的目录结构,让你的应用开箱即用。
数据科学/人工智能
任何时候你想处理数据,从刮削、数据分析、可视化、机器学习或人工智能,Python都将是你最好的朋友。对于这些任务中的每一项,都有一些重要的库,它们是伟大的库,在研究和生产环境中得到了高度的应用。
我不会去讨论这些库的细节,但我想提到几个。Pandas,Numpy,Matplotlib,Seaborn,Tensorflow,Pytorch,scikit-learn,Keras,NLTK,OpenCV。
多亏了这些库,你可以在几乎所有的数据科学或人工智能主题中建立生产准备项目。尽管在这些应用中使用Python有一些缺点(如性能),但在许多情况下,它将是一个很好的选择。
我们谈论的是什么样的项目?
一般来说,Python在数据科学和人工智能方面有很多很多的应用,我在这里提一下Python用于的几个常见项目。
时间序列分析
销售预测
语言处理
情感分析
推荐系统(如音乐、视频等)
分类
计算机视觉
自动驾驶卡
还有很多....
脚本
脚本通常指的是旨在实现简单任务自动化的小程序(通常通过命令行执行)。
让我给你举几个我自己写的脚本的例子,以实现我日常工作流程的部分自动化。
我的博客:我使用Evernote来收集我在网上看到的一切,同时也用来写我的文章。但是,当要发布的时候,我把这些笔记作为草稿上传到我的博客。这个过程在Python上自动发生,每当我把一个笔记标记为"准备发布"时,我就运行一个Python脚本,将笔记、格式和草稿复制到我的博客系统中。当然,在我真正能够发布之前,总有一些东西需要我手动修复(主要是由于Evernote奇怪的HTML?输出)。
备份:我喜欢在云端备份我的东西,但我也在外部硬盘中保留一份备份。我通常对所有进入云端的东西进行加密(Evernote除外,它不允许我这样做)。但当我把备份到硬盘时,我使用了硬盘加密,我不想让它被双重加密,所以当我想把数据备份到硬盘时,我运行一个Python脚本,它将解密数据,然后把它移到硬盘上。
结语
Python是一种非常通用的编程语言,由于它的社区和库,你几乎可以做任何你想做的事情,尽管有时你不应该这样做。没有一种语言可以统治它们,它们都有优点和缺点,Python也不例外。
说到这里,我确实相信Python是伟大的,如果你感到好奇,你可以用Python构建从游戏到嵌入式系统,尽管这些情况可能不是为生产准备的项目,也许我错了,如果是这样请告诉我,我想听听。