原标题:python这么火,到底可以用来做什么?

python学习交流君羊:245648132

你用 Python 做什么,你选 Python 3 还是 Python 2?

如果你正在考虑学习 Python,或者最近刚开始学习,你可能会问自己:

“我到底可以用 Python 做什么?”

这是个棘手的问题,因为 Python 有很多用途。但是随着时间的推移,我发现 Python 主要可用于一下三个方面:

Web 开发

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

脚本编写

我们就依次来看看吧。

Web 开发

像 Django 和 Flask 这样基于 Python 的 Web 框架最近在 web 开发中变得非常流行。

这些 web 框架帮助你用 Python 创建服务器端代码(后端代码)。这些代码在你的服务器上而不是在用户设备以及浏览器上(前端代码)运行。如果你不熟悉后端代码和前端代码之间的区别,请参阅下面脚注。

但是,等等,我为什么需要 web 框架呢?

那是因为 web 框架让构建通用后端逻辑变得更简单了。这包括把不同的 URL 映射到 Python 代码块、处理数据库和生成用户在浏览器中看到的 HTML 文件。

我应该用哪个 Python web 框架?

Django 和 Flask 是两种最流行的 Python web 框架。如果刚刚开始学习,那么可以用它们中的任何一个。

Django 和 Flask 有什么区别?

Gareth Dwyer 有篇关于这个话题的文章写得非常好,我在这里引用一下:

主要对比:

Flask 提供简洁、灵活和细粒度控制。它很是客观(让您决定如何实现想要的东西)。

Django 提供一种包罗万象的体验:您可以获得管理面板、数据库接口、ORM(object-relational mappling,对象关系映射),还有开箱即用的应用程序和项目的目录结构。

您应该选择:

Flask,如果您专注于体验和学习机会,或者您想对选用哪个组件有更大的控制权(例如您想使用哪个数据库和如何与它们交互)。

Django,如果你专注于最终的产品。特别是如果您正在做一个简单的应用程序(如一个新闻网站、电子商店,或者博客)并且希望有一个直接明了的做法。

换句话说,如果你是初学者,Flask 可能是个更好的选择,因为用到的组件比较少。如果想要更多的定制,那么 Flask 也是个更好的选择。

而且,根据我的数据工程师朋友的看法,Flask 更适合创建那些所谓的 REST API 的东西,因为它比 Django 更灵活。

另一方面,如果想构建一些简单的东西,Django 可以更快地达到目标。

好,我们接着谈谈下一个!

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

首先,我们来回顾一下什么是机器学习。

我认为,解释什么是机器学习的最好方法莫过于举个例子。

假设你想开发一个程序用于自动检测图片中的内容。

因此,对于下面的这张图片(图片 1),你希望程序能识别出这是条狗。

图 1

而对于下面的这张图片(图片 2),你希望程序能识别出它是张桌子。

图 2

你也许会说,我可以用几行代码搞定。例如,如果在图片上有很多淡棕色的像素,那么我们可以说那是狗。

或者,你可以找到在照片中检测边缘的方法。然后,你也许会说,如果有很多直边,那么那就是一张桌子。

但是,这种方法很快就遇到麻烦了。如果图片上是条没有棕色毛发的白狗怎么办?如果图片上显示的只是桌子的圆形部分呢?

轮到机器学习大显身手了。

机器学习可实现一些算法,能自动检测给定输入中的模式。

比如,你给机器学习的算法提供 1000 张狗的照片和 1000 张桌子的照片。那么,它将会学习区别狗和桌子。当您给出一张狗或桌子的新图片时,它将能够识别出是狗还是桌子。

我认为,这和婴儿学习新事物有点类似。婴儿是如何知道一样东西看起来像狗,而另一样东西看起来像桌子呢?可能就是从大量的例子中学到的。

你也许不会明确地告诉一个婴儿:“如果一样东西是毛茸茸的,并且有着淡棕色的毛发,那么它可能是条狗。”

你可能只是说:“那是条狗。这也是条狗。这是桌子。那也是桌子。”

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

你可以把同样的想法应用于:

推荐系统(像 YouTube、Amazon 和 Netflix 在用的)

面部识别

声音识别

你可能听说过的流行的机器学习算法包括:

神经网络

深度学习

支持向量机

随机森林

你可以使用任何一个上述算法来解决我刚才解释过的图片标注问题。

将 Python 用于机器学习

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

scikit-learn 附带了一些更流行的内置机器学习算法。我刚才提到了其中的几个。

TensorFlow 更像是个低级库,它允许构建自定义机器学习算法。

如果你刚开始一个机器学习项目,那么我建议先用 scikit-learn。如果你开始遇到效率问题,那么我建议用 TensorFlow。

我应该如何学习机器学习呢?

要学习机器学习基础知识的话,我建议选择斯坦福或加州理工学院的机器学习课程。

请注意,你需要微积分和线性代数的基本知识以理解这些课程中的某些内容。

然后,我会用 Kaggle 来练习从课程中学到的知识。Kaggle 是个网站,大家在这个网站上比试谁能对一个给定的问题构建出最佳的机器学习算法。网站上也有给初学者用的好教程。

那么数据分析和数据可视化呢?

为了帮助理解,我在这里举个简单的例子。假设你为一家在线销售产品的公司工作。

那么,作为数据分析师,你也许会画一个类似的条形图。

条形图 1- 由 Python 生成

从这张图上,我们可以看到,在某个特定的周日,对于某件产品来说,男性购买了 400 多件,而女性购买了大约 350 件。

作为一个数据分析师,你也许会对其中的差异做出几个可能的解释。

一个很显然的可能解释是,该产品在男性中比在女性中更流行。另一个可能的解释是,样本量太小,这个差异是偶尔产生的。还有一个可能的解释是,在周日,由于某种原因,男性比女性更倾向于购买该产品。

为了搞明白哪个解释是正确的,你可能绘制另一张图,如下图所示:

折线图 1- 由 Python 生成

我们不再只显示周日的数据,而是整整一周的数据。正如你所见,从这张图中,我们可以看到,这种差异在不同的日子里很一致。

从这个简单的分析中,你可能得出了结论,对这种差异,一个最有说服力的解释就是,这个产品更受男性而不是女性欢迎。

另一方面,如果你看到是如下所示的图呢?

折线图 2- 同样由 Python 生成

那么,如何解释出现在周日的差异呢?

你也许会说,也许出于某种原因,男性在周日更倾向于购买该产品。或者,也许只是巧合,男性在周日购买了更多的该产品。

好了,这是个简化的例子,展示了数据分析在真实世界中看起来的样子。

我在谷歌和微软工作的时候做过数据分析,跟这个例子非常相似,只是更复杂一些罢了。事实上,我在谷歌工作时,是用 Python 来做这种分析,而我在微软的时候,用的是 Java。

在这两家公司工作的时候,我用 SQL 从数据库中提取数据。然后,我会用 Python 和 Matplotlib(在谷歌工作时)或 JavaScrip 和 D3.js(在微软工作时)进行数据可视化和分析。

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

最流行的数据可视化库之一是 Matplotlib。

刚开始学习的话,它是个不错的库,因为:

它容易上手

其他一些库,如 seaborn 是以它为基础的。因此,学习 Matplotlib 可以帮你随后学习其他库。

我应该如何学习用 Python 进行数据分析 / 可视化?

首先,你应该学习数据分析和可视化的基础知识。我在网上没有找到相关的好资源。因此,最终,我在 YouTube 上做了相关的视频(用 Python 和 Matplotlib 进行数据分析 / 可视化的入门课程)。

我还在 Pluralsight 上做了相关的整个课程,如果你报名参加他们的 10 天免费试用,就可以免费获得这个课程。

这两个我都推荐给你。

学习了数据分析和可视化基础知识之后,在 Coursera 和 Khan Academy 上学习统计的基础知识也是很有帮助的。

脚本编写什么是脚本编写?

通常,脚本编写是指编写小程序以让简单任务自动化。

我在这里举个来自我个人经验的例子。

我曾在日本的一家小型初创企业工作,我们有个电邮支持系统,用来回复客户通过电邮给我们提出的问题。

我在那里工作的时候,我的任务是计算含有特定关键字的电邮数量,这样我们才可以分析我们收到的电邮。

我们本来应该用人工统计,但是,我写了个简单的程序 / 简单的脚本来自动完成该任务。

事实上,那时我们是用 Ruby 编写脚本,但是,对于这样的任务来说,Python 也是个不错的语言选择。Python 适合这种类型的任务主要是因为它有相对简单的语法并且容易编写。用它来写些小程序并进行测试花不了多少时间。

那些嵌入式应用呢?

对于嵌入式应用,我不在行,但是我知道 Python 可以配合 Rasberry Pi 工作。它在那些硬件发烧友中非常流行。

那么游戏呢?

你可以用 PyGame 库来开发游戏,但是,它不是最流行的游戏引擎。如果把游戏作为兴趣爱好,你可以用它来构建项目,但是,如果您真的要做游戏开发,我个人不建议选择它。

相反,我推荐用 Unity 的 C# 脚本,它是最流行的游戏引擎之一。它允许在很多平台上构建游戏,这些平台包括:Mac、Windows、iOS 和安卓。

那么桌面应用呢?

可以用 Python 的 Tkinter 来开发,但是它似乎不是最流行的选择。

相反,用 Java、C# 和 C++ 等语言开发桌面应用看起来更流行。

最近,一些公司也已经开始使用 Java 来创建桌面应用程序了。

比如,Slack 的桌面应用程序是用 Electron 来构建的。它允许用 Java 来构建桌面应用。

就我个人来说,如果我要构建一个桌面应用,我会用 Java。它允许复用 web 版本的某些代码(如果有的话)。

选 Python 3 还是 Python 2?

我会推荐 Python 3,因为它更现代化,并且目前它更受欢迎。

脚注:对于后端代码和前端代码的的说明(万一您对这些术语不熟悉)。

假设,你想做个类似于 Instagram 的东西。

那么,你需要为每种想支持的设备创建前端代码:

Swift 用于 iOS 设备

Java 用于安卓设备

Java 用于 web 浏览器

每组代码都将在对应类型的设备 / 浏览器上运行。这组代码将决定应用的布局看上去的样子,单击时按钮的外观等等。

但是,你仍然需要存储用户信息和照片的能力。除了在用户的设备商储存这些信息,你还会希望将这些信息储存在服务器上,这样,每个用户的关注者就能看到用户的照片。

这里就是后端代码 / 服务器端代码的用武之地了。你需要编写后端代码以执行以下操作:

持续跟踪谁在关注谁

压缩照片,以免占据太多存储空间

在发现功能中给每个用户推荐照片和新账号

好了,这就是后端代码和前段代码之间的区别。

顺便说一下,Python 不是编写后端 / 服务器端代码的唯一好选择。还有很多其他流行的选择,包括 Node.js,它是基于 Java 的。返回搜狐,查看更多

责任编辑:

python可以用来写什么_python这么火,到底可以用来做什么?相关推荐

  1. python可以写脚本_Python写一个痒痒鼠脚本

    之前电脑系统崩了,重装之后就直接安装Anaconda来使用Python语言(装的时候记得把添加路径勾上,不想装Anaconda可参考之前的Python环境搭建),咱们还是先用Sublime来写脚本吧. ...

  2. python下载哪个好_Python和Java到底哪个更好?

    某同学问小优:"小优小优,学Java好还是学Python好?" 小优跑去问大神(90度鞠躬):"大神,大神,学Java好还是学Python好?" 大神嫌弃的看了 ...

  3. python怎么写接口_python接口怎么写

    1. 用python怎么写一个接口自动化框架 #!/usr/bin/env python import sys str = True while (str): dig = int(input()) i ...

  4. python为什么胶水语言_Python真的什么都可以做,胶水语言可不是白叫的

    作为一门老当益壮的语言,Python在近年来受到极高的关注 017 年 9 月 Stack Overflow 发布的数据表明 Python 是增长最快的编程语言: 10 月份 GitHub 公布年度开 ...

  5. python大神能干什么_Python这么火,能干什么?这四大主要用途是你必须得知道的!...

    如果你想学Python,或者你刚开始学习Python,那么你可能会问:"我能用Python做什么?" 这个问题不好回答,因为Python有很多用途. 大家都知道,当下全栈工程师的概 ...

  6. python代码写龙卷风_python面试题

    1.mysql 左连接 右连接 内连接的区别 内连接,显示两个表中有联系的所有数据 左连接,左表为参照,显示所有数据 右连接,以右表为参照显示数据 2.Django的框架流程,有那些中间件 框架流程: ...

  7. python 递归 写平方_Python算法:推导、递归和规约

    注:本节中我给定下面三个重要词汇的中文翻译分别是:Induction(推导).Recursion(递归)和Reduction(规约) 本节主要介绍算法设计的三个核心知识:Induction(推导).R ...

  8. python多线程写日志_python 应用logging多线程写多个log文件

    python 使用logging多线程写多个log文件 import threading import time import logging import logging.handlers LEVE ...

  9. python程序写诗_python写的简单发送邮件的脚本

    近来有些东西需要监控报警发邮件,然后在网上找了点材料,自己写了一个简单发送邮件的脚本,主要就是运用python的smtplib模块,分享给大家看一下: #!/usr/bin/env python # ...

最新文章

  1. 微软正式发布Azure Storage上的静态网站
  2. sqoop 增量导入,不重复
  3. Sublime Text Version 3.0,Build3143注册码
  4. 项望烽:移动 IM 开发之心跳​
  5. python第7章实训作业_试图学Python赚外快的第7天
  6. mysql innodb 并行_关于MySQL8.0 InnoDB并行执行的详解
  7. Java中带有JWebSocket的WebServerSocket
  8. java指令和javac指令总结
  9. mysql 取年月日 语句_MySQL学习从这里出发!
  10. Win7删除不了打印机怎么办
  11. java 大小固定_为什么Java堆的最大大小是固定的?
  12. 鸿蒙服务卡片-哔哩哔哩弹幕姬
  13. Project configuration is not up-to-date with pom.xml. Run Maven-Update Project or use Quick Fix
  14. python求解LeetCode习题Find the First Missing Positive Number
  15. java reflector_Java DefaultReflectorFactory类代码示例
  16. electron 屏幕标注_gInk:一款好用的屏幕标注写画软件
  17. 音创服务器系统手动加歌,音创ktv点歌系统的教程
  18. 进销存excel_简单易操作!Excel免费进销存管理系统!不花钱的进销存管理软件...
  19. html页面调用高德地图,html前端使用高德地图入门教程
  20. 数字集成电路:MOS管器件章(一)

热门文章

  1. 数据结构之内部排序总结
  2. BIM Revit2019下载安装教程
  3. 记一次安装centOS7.X遇到的i8042 i8042 no controller found和安装源感叹号
  4. 关于BZOJ如何注册问题
  5. 三星android 5.0升级名单,三星可升级Android 7系统机型名单曝光
  6. 【NC】简析NC6多语言实现
  7. 鱼C论坛上Python练习题-72
  8. 网络安全:对于小白白的学习建议以及自己的学习计划
  9. EV录屏有很大电流音的解决方法
  10. 离散余弦变换在图像压缩中的应用