导读:如果你想学Python,或者你刚开始学习Python,那么你可能会问:“我能用Python做什么?”

这个问题不好回答,因为Python有很多用途。

但是随着时间,我发现有Python主要有以下三大主要应用:

  • Web开发

  • 数据科学:包括机器学习、数据分析和数据可视化

  • 脚本

本文将依次介绍。

作者:YK Sugi

编译:Mika

来源:CDA数据分析师(ID:cdacdacda)

01 Web开发

Django和Flask等基于Python的Web框架最近在Web开发中非常流行。

这些Web框架可以帮助你用Python编写服务器端代码(后端代码)。这是在你的额服务器上运行的代码,而不是运行在用户设备和浏览器的代码(前端代码)。

1. 为什么需要Web框架

因为用Web框架可以更容易地构建通用后端逻辑。这包括将不同的URL映射到Python代码块,处理数据库以及生成用户在浏览器中看到的HTML文件。

2. 应该使用哪种Python Web框架

Django和Flask是最流行的两种Python Web框架。如果你刚刚入门,我建议使用其中一种。

3. Django和Flask有什么区别

Gareth Dwyer 关于这个问题有一篇出色的文章,在这里我引用几段:

主要区别

Flask:能够实现简单、灵活和细致的控制。并能让你自己决定实现方式。

Django:提供了全面的体验:你可以获得管理面板、数据库接口、ORM(对象关系映射)以及开箱即用的应用程序和项目的目录结构。

如何选择

Flask:如果你关注的是经验和学习的机会,或者你想更多地控制使用哪些组件,比如你想使用哪些数据库以及如何与其进行交互。

Django:如果你关注最终产品,或者你正在研究一个简单的应用,比如新闻网站、网店或博客,并且你希望有单一实现的方式。

换句话说,如果你是初学者,Flask可能是更好的选择,因为它要掌握的组件更少。此外,如果你想要更多的定制,那就选Flask。

根据我的数据工程师朋友Jonathan T Ho的说法,由于Flask 的灵活性,在创建REST API时,Flask 比Django 更适合。

另一方面,如果你想直接构建一些东西,Django可能会让你更快实现。

02 数据科学

数据科学,这里包括机器学习,数据分析和数据可视化。

1. 机器学习是什么

假设你想开发一个能够自动检测图片内容的程序。给出图1,你希望程序识别这是一只狗。

▲图1

给出图2,希望程序能识别这是一张桌子。

▲图2

你可能会说,我可以写一些代码来做到这点。例如,如果图片中有很多浅棕色像素,那么可以识别是狗。

或者可以检测图片中的边缘,如果有很多直的边缘,那么就是桌子。

但这种方法很快就不好用了。如果图片中的狗不是棕色毛的怎么办?如果图片只显示桌子的圆形部分怎么办?

这里就需要用到机器学习了。

机器学习通过实现算法,该算法能够自动检测输入中的模式。

例如,你将1000张狗的图片和1000张桌子的图片输入给机器学习算法,让它掌握狗和桌子间的区别。那么当你给出新的图片让它识别是狗还是桌子时,它就能够进行判断。

这有点类似孩子学习新事物的方式。孩子是如何学习认知狗或桌子的呢?就是通过大量的例子。

你不会明确告诉孩子:“如果某个毛茸茸的东西有浅棕色的毛发,那么就可能是狗。”

你会说,“这是狗,这也是狗。而这是桌子,那个也是桌子。“

机器学习算法的方式大致相同。

我们可以将相同的想法应用于:

  • 推荐系统:比如YouTube,亚马逊和Netflix

  • 人脸识别

  • 语音识别

以及其他应用。

你听过的热门机器学习算法包括:

  • 神经网络

  • 深度学习

  • 支持向量机

  • 随机森林

你可以使用上述任何算法来解决前面提到的图片标签问题。

2. 将Python用于机器学习

有一些热门的机器学习库和Python框架。其中两个最热门的是scikit-learn和TensorFlow。

  • scikit-learn带有一些内置的热门机器学习算法。

  • TensorFlow是一个低级库,能让你创建自定义机器学习算法。

如果你刚开始进行机器学习项目,我会建议你先从scikit-learn开始。如果你开始遇到效率问题,那么可以使用TensorFlow。

3. 数据分析和数据可视化

假设你在一家在线销售产品的公司工作。作为数据分析师,你会绘制这样的条形图。

▲条形图1 - 用Python生成

从这张图中可以看到在某个周日,男性用户购买了400多件产品,女性用户购买了350件产品。

作为数据分析师,对此你会提出一些可能的解释。明显的解释是,该产品在男性用户中更受欢迎。另一种是样本量太小,而这种差异是偶然的。还可能呢是由于某种原因,男性往往在周日才购买该产品。

为了理解哪种解释是正确的,你可以绘制另一个图。

▲折线图1 - 用Python生成

不止看周日的数据,还要看到一周的数据。从这张图表中可以看出,在不同的日子里这种差异比较一致。

从这个分析中你会得出结论:这种产品在男性中比在女性中更受欢迎。

但如果你看到像这样的图表呢?

▲折线图2 - 用Python生成

那么,怎么解释周日的差异呢?

你可能会说,也许出于某种原因男性只在周日才会更多地购买这款产品。或许这只是巧合。

我在谷歌和微软工作时所做的数据分析工作与这个例子非常相似,只是更复杂一些。在谷歌时我使用Python进行分析,而我在微软使用JavaScript。

在这两家公司我都使用SQL从数据库中提取数据。然后,我用Python和Matplotlib(在谷歌)或JavaScript和D3.js(在微软)来可视化和分析这些数据。

4. 使用Python进行数据分析/可视化

进行数据可视化时,Matplotlib是非常热门的库。

Matplotlib很棒,因为:

  • 容易上手

  • seaborn等库是基于它的,学习Matplotlib可以帮助你以后学习其他库。

5. 如何用Python学习数据分析/可视化

你首先应该了解数据分析和可视化的基础知识。在学习了数据分析和可视化的基础知识之后,学习统计学基础知识也将会很有帮助。

03 脚本

什么是脚本?

脚本通常是指编写能够自动执行简单任务的小程序。

我曾经在日本的一家小型创业公司工作,公司有邮件支持系统,这用来回复客户通过邮件发送给我们的问题。

在那儿工作时,我的任务是计算包含关键字的邮件数量,以便分析我们收到的电子邮件。这可以手动完成,但我写了一个简单的脚本来自动执行此任务。

当时我们使用了Ruby,但对于这类任务Python也是不错的选择。Python适合这类任务,因为它语法简单,易于编写,而且进行测试也很快。

04 其他用途

1. 嵌入式应用

我不是这方面的专家,但我知道Python可以与Rasberry Pi一起用,在硬件爱好者中很流行。

2. 游戏开发

你可以用PyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。

我建议使用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台开发游戏,包括Mac、Windows、iOS和Android。

3. 桌面应用

你可以用Python的Tkinter,但这并不是最热门的选择。Java,C#和C ++等语言似乎更受欢迎。

最近,一些公司也开始使用JavaScript来开发桌面应用程序。例如,Slack的桌面应用是Electron构建的。它能让你用JavaScript构建桌面应用程序。

就个人而言,如果我要开发桌面应用,我会选择使用JavaScript。它能让你重新使用网络版本的一些代码。

当然,我并不是桌面应用的专家,所以如果你有不同的看法,评论中告诉我。

4. Python 3还是Python 2

我会推荐Python 3,因为它更新而且更受欢迎。

5. 后端代码与前端代码的区别

假设你想开发类似Instagram的产品,那么你需要为想要支持类型的设备创建前端代码。

你可能会用到:

  • 面向iOS端的Swift

  • 面向Android的Java

  • 面向Web浏览器的JavaScript

每组代码将在每种类型的设备上运行。这类代码将决定应用的布局样式,点击按键的样式等。

但是,您还需要存储用户信息和照片的功能。你要将它们存储在服务器上,而不仅仅存储在用户的设备上,以便每个用户的关注者都可以查看其照片。

这时需要用到后端代码/服务器端代码。你需要编写后端代码来执行以下操作:

  • 记录关注情况

  • 压缩照片,从而不占用太多存储空间

  • 在发现功能中向每个用户推荐照片和新帐户

这是后端代码和前端代码之间的区别。

顺便说一下,Python不是编写后端代码的唯一选择,还有基于JavaScript的Node.js等选择。

原文链接:

https://medium.freecodecamp.org/what-can-you-do-with-python-the-3-main-applications-518db9a68a78

python能用来做什么?这3大主要用途你一定要知道!(实用)的更多相关文章

  1. python主要用来做什么

    python这门编程语言在国外极受欢迎,但在国内使用还不是极普遍. 由于python编程效率极高,现在国内的使用者也开始变得越来越多. python主要用来做什么?这个语言到底有哪些作用呢? 下面主是 ...

  2. 学习《Python核心编程》做一下知识点提要,方便复习(一)

    学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿p ...

  3. 学了 Python 能用来做这些!

    来源商业新知网,原标题:学了 Python 能用来做什么? 说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的.随着近年大数据.人工智能的兴起,Python 越来越多的出现在人们 ...

  4. 【高德地图API】汇润做爱地图技术大揭秘

    原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...

  5. python对web服务器做压力测试并做出图形直观显示

    压力测试有很多工具啊.apache的,还有jmeter, 还有loadrunner,都比较常用. 其实你自己用python写的,也足够用. 压力测试过程中要统计时间. 比如每秒的并发数,每秒的最大响应 ...

  6. 90道Python面试题,做对80%直击年薪40w

    转发链接: 1.一行代码实现1--100之和 利用sum()函数求和 2.如何在一个函数内部修改全局变量 函数内部global声明 修改全局变量 3.列出5个python标准库 os:提供了不少与操作 ...

  7. python开发_tkinter_自己做的猜数字小程序

    读到这篇文章[python 3.3下结合tkinter做的猜数字程序]的时候,就复制了代码,在自己机器上面跑了一下 源程序存在一个缺陷: 即当用户答对了以后,用户再点击'猜'按钮,最上面的提示标签还会 ...

  8. 只想听歌曲的高潮部分?让我用python来教你做个音乐高潮提取器!

    有些时候,我们为了设定手机铃声或者发抖音视频时,会耗费大量时间在音乐剪辑上.尤其是想发布大量抖音视频的时候,我们得收集大量的短音乐,这是一个相当耗费时间的工作.那么,这个音乐高潮的提取能不能自动化呢? ...

  9. 用Python自动办公,做职场高手(完结)

    教程目录: ┣━07.S2 Word自动化处理,又快又好做文档┃  ┣━36 本章介绍┣━08.[Word]S2-1 轻松用Python快速生成Word文档┃  ┣━45.[真实案例]S2-1-3 批 ...

随机推荐

  1. Python文件操作——读写图片,音频,视频

    注意:其实就是将mode="rb"或者mode="wb",因为图片,视频,音频就是二进制进行读取,b  代表binary ,其他的和一般文件操作步骤一样,另外, ...

  2. C#应用笔记

    1.ref关键字.out关键字——引用传递参数 2.什么时候用DateReader,什么时候用DateSet呢? 3.is操作符.as操作符的使用 4.Eval方法和Bind方法的区别 5.Serve ...

  3. vue添加图片

    首先开始创建一个 static 文件夹用来保存图片 去 setting 里面进行配置 MEDIA_ROOT = os.path.join(BASE_DIR,'media') #前面大写的是死格式,尽量 ...

  4. PHP 多维数组将下标从0开始

    点击链接加入群[php/web 学习课堂]:https://jq.qq.com/?_wv=1027&k=5645xiw 欢迎大家加入,一起讨论学习 模拟一个: public function ...

  5. java进程被OOM干掉问题记录

    异常现象:用户环境部署了一台iserver,访问一阵后,进程没了   分析: 1.bin目录下没有崩溃日志,在tomcat的访问日志里面也没有看到有用的信息.iserver.log里面也没有信息 2. ...

  6. STM32工程模版

    STM32工程模版,看过来 ST库源码去官方下载 创建工程目录 doc:存放说明文档 lib:存放库文件 listing:存放编译产生的中间文件 output:存放生成的文件 project:存放工程 ...

  7. Ajax返回数据却一直进入error(已经解决)

    做asp.net项目  使用ajax $.ajax({ url: '../Music/Default2.aspx?Types=' + type + '&texts=' + text + '', ...

  8. ARM体系结构与编程读书笔记——处理器的寄存器

    ARM处理器共有37个寄存器,其中包括: 31个通用寄存器,包括程序计数器(PC)在内,寄存器都是32位: 6个状态寄存器,这些寄存器都是32位的,目前只使用了其中12位: 通用寄存器 可以分为下面3 ...

  9. PAT Basic 1052 卖个萌 (20 分)

    萌萌哒表情符号通常由“手”.“眼”.“口”三个主要部分组成.简单起见,我们假设一个表情符号是按下列格式输出的: [左手]([左眼][口][右眼])[右手] 现给出可选用的符号集合,请你按用户的要求输出 ...

  10. javascript弹出带文字信息的提示框效果

    // position of the tooltip relative to the mouse in pixel // <html><head><meta charse ...