Python虽好,但别将它用于每一个项目!

栏目: IT技术 · 发布时间: 4年前

内容简介:【51CTO.com快译】最近我在Reddit上讨论了为什么有人会选择使用Python而不是其他编程语言。讨论很激烈,于是我决定写一篇文章。

Python虽好,但别将它用于每一个项目!

【51CTO.com快译】

最近我在Reddit上讨论了为什么有人会选择使用 Python 而不是其他编程语言。讨论很激烈,于是我决定写一篇文章。

首先,不妨讲讲我对Python的看法。这是我喜欢的一种编程语言,可以用于众多应用,不过我同意所有语言都有其缺点。我的确认为Python是适合专业人员使用的一种优秀语言,但也适合初学者探索迷人的编程世界。

话虽如此,我会在每个项目中使用Python吗?可能不会。但是Python在一些方面很擅长,我想重点介绍这方面并解释原因。

  • API开发
  • 数据科学/人工智能
  • 脚本编写

API开发

有一些出色的API开发框架可与Python结合使用,其中两个是开发社区最喜欢的框架:Django和Flask。

围绕API开发的讨论立即进入了Web框架的方向。为什么?这么说吧,如果你想致力于为API编写代码,就不该编写自己的Web服务器或框架。

一些人也主张将Python用于Web开发,不过我不喜欢将那些框架用于前端,我更喜欢使用React、VueJS或Ember构建前端。

如果你开始使用Python开发API,很可能最终会使用Django或Flask。所以你可能会问:我该使用哪一个?

Django VS Flask

这两种框架都很棒,而且适用于大多数情况。然而,它们遵循不同的理念。一些人更喜欢其中一种,两边都有充分的理由。由于这两种框架本质上大不相同,因此我仅介绍两者的大体区别,不过你应该详细了解,才能确定哪种框架最适合你和你的项目。

理念:

  • Flask是一种简约的框架。它提供了简单性、灵活性和细粒度控制。它是非固执己见的(你可以用它来做你想做的任何事情)。
  • 相反,Django是一个综合性框架。你可以直接为应用程序获得库、管理面板、数据库界面、ORM甚至可靠的目录结构。

如果你想了解更多的相关内容,请参阅此文: https://testdriven.io/blog/django-vs-flask/

数据科学/人工智能

无论何时想处理数据(比如数据抓取、数据分析、可视化、机器学习或AI),Python都是最好的朋友。这每一项任务都有许多重要的库,它们是出色的库,在研究环境和生产环境中使用率很高。

我不会详细介绍这些库,但想提及几个库:Pandas、Numpy、Matplotlib、Seaborn、Tensorflow、Pytorch、scikit-learn、Keras、NLTK和OpenCV。

由于这些库,你可以构建涉及几乎任何数据科学或AI主题的生产就绪的项目。虽然将Python用于其中一些应用存在一些缺点(比如性能),但在许多情况下,Python会是不错的选择。

我们在谈论哪一种项目?

通常,Python在数据科学和AI有许多应用。我在这里提及使用Python的几个常见项目:

  • 时间序列分析
  • 销售预测
  • 语言处理
  • 情绪分析
  • 推荐系统(比如音乐和视频等)
  • 分类
  • 计算机视觉
  • 自动驾驶汽车

脚本

脚本通常指旨在自动执行简单任务的小程序(通常通过命令行来执行)。

下面举几个例子表明我自己编写的脚本,这些脚本使我的日常工作流程实现自动化:

  • 我的博客:我使用Evernote收集在网上看到的所有内容,还撰写帖子。但是需要发布时,我记下那些笔记并将其作为草稿上传到我的博客中。这个过程在Python上自动进行:每当我将笔记标记为“准备发布”,我会运行Python脚本:将笔记、格式和草稿拷贝到我的博客系统中。当然,实际发布之前我总需要进行一番手动修改(主要是由于Evernote奇怪的HTML输出)。
  • 备份:我喜欢在云端备份资料,但我也在外部硬盘中留一份副本。我通常加密放到云端的所有内容(Evernote除外,它不允许我这么做)。但当我将备份内容放到硬盘时​​,会使用硬盘加密,我不想对其进行双重加密。当我想把数据备份到硬盘时,会运行一个python脚本,该脚本解密数据,然后将数据移到硬盘。

结论

Python是一种用途很广泛的编程语言,由于其社区和库,你几乎可以用它来做想做的任何事情,不过有时你不该使用它。没有哪种语言一应俱全:它们都有优缺点,Python也不例外。

话虽如此,我确实认为Python很棒;如果你很好奇,可以用它构建从游戏到嵌入式系统的各种应用。当然,那些可能不是生产就绪的项目。

原文标题:Python is great, but stop using it for every damn project

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【责任编辑:庞桂玉 TEL:(010)68476606】


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法设计、分析与实现

算法设计、分析与实现

徐子珊 / 2012-10 / 65.00元

《算法设计、分析与实现:c、c++和java》由徐子珊编著,第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法和图的搜索算法。每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已......一起来看看 《算法设计、分析与实现》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换