自动配置、有效求助、协作编程、版本控制。一站式解决 Python 新手练习中的痛点。

痛点

这个学期,我在北得克萨斯大学(University of North Texas)教 INFO 5731: Computational Methods for Information Systems 课程,主要内容包括: Python 基础、自然语言处理,以及机器学习。
授课的对象是信息科学、数据科学专业的硕士与博士研究生。跟在国内一样,我依然使用翻转教学(flipped instruction)方式。

过去的几周,我们把“Python 基础”部分学完了。

每周,我都会要求学生阅读两本教材上的指定章节,然后把所有的代码自己重复一遍。在此基础上,对每一段代码,学生都要自己试着进行一些改动。出错也没有关系,尝试解决。

因为绝大部分学生,都是 Python 初学者。因此他们都会遇到以下的实际问题。

一、不知道如何安装和设置运行环境;

二、遇到问题会慌乱,不知如何有效寻找解决方法;

三、对于团队作业,不知该如何有效协作;

四、不懂得如何进行版本控制,代码越改越乱。

这些问题,也构成了学生的痛点。

如果不能有效加以解决,学生会把每周宝贵的学习时间,浪费到许多琐碎的无用功上。更可能的情况,是他们的信心会被打击,导致丧失学习的动力和兴趣。

因此,我为他们找到了一款合适的 Python 练习工具。这里,我把这款工具也分享给你。

这款工具,就是 Google Colab 。我曾经在《如何免费云端运行Python深度学习框架?》一文中为你介绍过它,在《如何用 Python 和循环神经网络做中文文本分类?》和《如何用 Python 和循环神经网络预测严重交通拥堵?》里,我也曾用它给你做过代码的展示。

下面,我给你介绍一下,如何用 Google Colab 应对上述的4个痛点,为你的 Python 练习提供辅助。

如果你对 Python 与数据科学感兴趣,可以加我Q群867067945,里面都是python大神,也有专业解答python的大神

环境

新手最常见的问题,就是好不容易累积了学习的兴趣,上手不久便遇到报错。

而 Python 新手遇到的许多错误,实际上都和环境的配置有关。

例如说,Anaconda 套件下载环节,你就不知道该选择哪个版本。

好不容易安装好了,因为路径设置问题,连 Jupyter Notebook 都呼叫不出来。

终于能输入代码了。结果一输入就提示,你要调用的模块名称,没听说过!

而这些,Google Colab 都帮你处理好了。

只需要打开一个浏览器(推荐 Google Chrome 或者 Firefox),输入:

https://colab.research.google.com

就可以看到以下页面。

选择新建 Python 3 笔记本。

然后,就能看到完全配置好的 Python 运行环境了。

对,就是这么简单。

你可别小瞧这个运行环境。

虽然你没有执行任何安装过程,但是它基本上涵盖了你做数据科学分析,要用到的各种工具。

这些工具包括但不限于 Numpy, Scipy, Pandas 等,甚至连深度学习的框架,例如 Tensorflow, Keras 和 Pytorch,也是一应俱全。

Google Colab 的深度学习环境支持,可不只是软件那么简单。Google 慷慨的提供了 GPU, 甚至是更专业化的 TPU, 供你免费使用。

默认状态,这些云端硬件是不开启的。你需要在菜单栏中选择 runtime,然后选择 Change runtime type。

就可以看到不同硬件支持的选项了。

有的书籍样例代码,甚至是 Python 组件,都需要 Python 2 环境才能运行,这也没关系。点击新建笔记本,你就能使用不同的 Python 版本了。

细心的你会发现,在上面“修改运行时设置”页面里,也可以随时调整 Python 版本。

求助

作为新手,你遇到错误和问题,是完全正常的。

Python 具有强大的社区,可以给你提供很多帮助。

但如果你尝试过,便可能有一种错觉——这些 Python 高手很不友好。因为你贴了问题,却没人理你。

其实,这很可能是你问问题的方式不对。

想想看,你笼统地说一个报错信息,可能的原因或许有数十甚至上百种,谁能帮你一一排除?

这倒也罢了。可是你明明贴了一段代码,还给出了错误信息的截图啊。为什么还是没有人伸出援手?

因为这些信息,可能依然不够。

想想看,你本地安装了什么样的套件?其中的各种模块,都分别是什么版本?你执行当前代码有问题,那上下文是什么?会不会是因为之前某个代码段落,影响了你当前段落的执行?你的操作系统,是否完全支持你正在使用的组件功能?……

这些可能性,无穷无尽。同样,也没有人这样花时间帮你枚举。

但是有了 Google Colab ,你提问的效果却可以大大提升。

因为,你可以用** 最简单的方法,让潜在的回答者复现**你的问题。

这就是,把你的笔记本共享出去。

如上图,点击笔记本右上角的 Share 按钮。

在出现的对话框里,注意选择权限。选成可以浏览(view),就可以了。

然后,选择“复制链接”,链接就到了你的剪切板里面了。把它连同你的文字描述,直接贴到 Python 的论坛或者课程讨论区里。

别人只需要点击,就能查看你的全部代码、报错信息。而且,还能运行你的笔记副本。

注意,虽然你俩可能用的是不同的操作系统、不同的浏览器,但因为都用了 Google Colab ,你们的 Python 环境是完全一致的。

等到对方解决了问题,他还可以把完整的笔记本再用链接方式分享给你。你的问题于是迎刃而解。

问问题,只是寻求帮助的一个方面。

在提问之前,你还是应该自己尝试一下解决的。毫不愿意思考,直接当伸手党,社区里的人很难喜欢跟你打交道。

Google Colab 为你主动寻找问题答案,提供了工具支持。每当你遇到报错的时候,你都会看到下方有个按钮。

点击这个按钮, Google Colab 就会用搜索引擎,在 Stackoverflow 这个 IT 问答站点上,帮你寻找相关报错的已有答案。

一般来说,点击前几条信息,你就会有收获。

例如这次,你就很幸运,因为答案明确说明,这是因为 Python 版本带来的差异。

你只需要根据提示,进行代码的轻微调整,就能正常运行了。

协作

不知你有没有尝试过跟人协作编写代码?

我的课上,是有小组作业的。要求学生2-3人一组,一起用 Python 解决问题。

有的人,是这样协作的。

自己写一段代码,用邮件传给对方。

对方改完,发回来。

自己在上面修改添加,再发回去。

……

这样显然效率很低。

有没有高效的方法?

当然有。依然利用我们刚才已经见到过的共享功能。

只是这一次,在选择权限的时候,给对方“可修改”权限。

例如还是刚才的 print 命令没有加括号的问题。只不过这次,对方除了能看到你的问题,还可以直接编辑。

你的协作者,新建了一个代码块,并且输入了正确的信息。

在你这里看起来,就是这个样子的。

协作者的头像,会显示在对应的修改内容旁边。这样一目了然。

对方还可以在代码块旁,选择添加注释。

例如输入以下内容。

你可以同步在自己的笔记本上,看到对方的注释。

这样一来,团队协作 Python 练习沟通的效率,自然就高了许多。

注意,为了安全起见,一定只能把该权限,限定在你信任的协作者中。

如果是打算把你的成果展示出来,你可以使用 Google Colab 与 Github 的集成功能。

如上图,选择保存副本到 Github 。

然后,选择你希望保存到的 Github 项目。

保存完毕后,对应的 Github 页面会自动打开,供你预览。

其中可以包含全部的文字、图片、代码、输出信息。注意笔记本的顶部,有一个“在 Colab 打开”的链接。

点击它,你就能迅速开启 Google Colab 环境,并且直接运行这个 Github 上的笔记副本。

版本

当你不停地尝试和改动代码的时候,很有可能会把问题改得更加糟糕。这时候,你恨不得有一个时光机,可以让你回到错误少一点的时候。

这个时光机,Google Colab 是提供了的。

点击菜单里面的 Revision history 功能,你就能看到当前笔记本已保存的全部历史版本。

包括修改时间、谁改的、文件大小等各种信息,一应俱全。

想回到哪个版本,点一下“恢复”按钮就可以了。

另外,你也可以把 Google Colab 笔记本,直接下载成为 ipynb 文件,在本地保存副本。

一定要注意选择需要的存储路径,避免不知存到哪里去了。

我一般让学生交作业的时候,都需要同时提交 Google Colab 链接,以及一个 ipynb 文件。

二者的内容,应该是一样的。既然如此,为什么还需要提交两样东西呢?

这个问题,作为思考题,留给你。请注意联系本节标题,加以分析。

有了 ipynb 文件,你可以用本地的 Jupyter Notebook 开启。但是如果你只是想查看内容的话,这里给你推荐一个更好的工具,叫做 nteract 。它可以帮你直接开启 ipynb 文件,用于查看。

这样,你就没必要每次都用 Jupyter Notebook 命令开启后台服务,然后再到浏览器中点开对应的 ipynb 了。

小结

还记得在《如何高效学 Python ?》一文中,我给你推荐过的经典教材《笨办法学 Python》吧?

《笨办法学 Python》指出了一条看似笨拙,却非常有效的学习路径。我上课的时候,也一直在跟学生们强调—— Python 这样的实践类技能,只能练中学(Learn by doing)。

本文给你推荐的 Google Colab ,可以帮你解决 Python 初学者练习实践 Python 编程时,最常遇到的几大痛点。包括:

  • 自动配置
  • 有效求助
  • 协作编程
  • 版本控制

这样一来,你可以把宝贵的时间,聚焦在技能的掌握和应用;而不是久病成医,成为“环境配置专家”了。

祝 Python 编程学习愉快!

延伸阅读

你可能也会对以下话题感兴趣。点击链接就可以查看。

  • 学 Python ,能提升你的竞争力吗?
  • 如何高效学 Python ?
  • 《文科生数据科学上手指南》分享

如果你对 Python 与数据科学感兴趣,可以加我Q群867067945,里面都是python大神,也有专业解答python的大神

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

初学 Python 需要安装哪些软件?的更多相关文章

  1. 初学python之安装Jupyter notebook

    一开始安装python的时候,安装的是最新版的python3.6的最新版.而且怕出问题,选择的都是默认安装路径.以为这样总不会出什么问题.一开始确实这样,安装modgodb等一切顺利.然而在安装jup ...

  2. 1、python环境安装及软件介绍

    软件: python3.0 下载地址:https://www.python.org/downloads/windows/ pycharm 下载地址: https://www.jetbrains.com ...

  3. 初学Python,需要装什么软件?

    学习Python需要安装什么软件呢?也许你是一位编程小白,还不知道如何如何安装Python软件和开发环境.那么今天我们就来学一下关于Python软件.开发环境的相关知识,希望对你有用. 学Python ...

  4. python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  5. python服务器环境搭建——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  6. Python 列出 windows 安装的软件

    Python 列出 windows 安装的软件 参考链接:https://stackoverflow.com/questions/802499/how-can-i-enumerate-list-all ...

  7. 卸载python安装的软件

    python源码安装的软件是无法通过命令卸载的,这个可以通过记录安装过程的形式来卸载安装的软件 以 python2.7.2 为例,在这个目录中有一个 setup.py 的文件,很显然这是安装程序,还是 ...

  8. mac学习Python第一天:安装、软件说明、运行python的三种方法

    一.Python安装 从Python官网下载Python 3.x的安装程序,下载后双击运行并安装即可: Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. MAC 系统一般 ...

  9. 初学python常用,python模块安装和卸载的几种方法

    兄弟们常常因为遇到模块不会安装,或者遇到报错就懵了,就很耽误学习进度,今天我们就一次性了解Python几种安装模块的方法~不过~ 实在是懒得看 点击此处找管理员小姐姐手把手教你安装 一.命令提示符窗口 ...

随机推荐

  1. 在思科三层交换机上配置DHCP,不同网段/VLAN间互通

    摘要: 描述:在三层交换机上配置DHCP,实现DHCP为PC1/PC3分配192.168.1.X网段:实现DHCP为PC2/PC4分配192.168.2.X网段:并且各个PC间要可以互相通信.(文末附 ...

  2. python-数据清洗与编码解码

    0x01 join str = 'hk$$yicunyiye$$hello world' print(str.split('$$')) #自己实现 result = '' for i in str.s ...

  3. Java锁?分布式锁?乐观锁?行锁?

    转载自:公众号来源:码农翻身 作者:刘欣 Tomcat的锁 Tomcat是这个系统的核心组成部分, 每当有用户请求过来,Tomcat就会从线程池里找个线程来处理,有的执行登录,有的查看购物车,有的下订 ...

  4. 原子类的 ABA 问题

    原子引用 public class AtomicReferenceDemo { public static void main(String[] args) { User cuzz = new Use ...

  5. Hive 窗口函数sum() over()求当前行和前面n条数据的和

    前几天遇到一个这样的需求:销售总占比加起来超过75%的top分类.具体需求是这样的:商品一级分类标签下面有许多商品标签,例如运动户外一级标签,下面可能存在361°,CBA,Nike,Adidas... ...

  6. 关于JAVA的垃圾回收机制

    使用JAVA编程时,几乎不需要考虑"内存泄漏"的问题,这也是JAVA相较于C++的一个优点. 最近在看<Java编程思想>(第四版,听说第五版有点牛逼....),里面讲 ...

  7. Magicodes.IE之花式导出

    总体设计 Magicodes.IE是一个导入导出通用库,支持Dto导入导出以及动态导出,支持Excel.Word.Pdf.Csv和Html.在本篇教程,笔者将讲述如何使用Magicodes.IE进行花 ...

  8. Java学习day04

    day04-课堂笔记 1.运算符[剩下的运算符] * 赋值运算符 两种类型: 基本赋值运算符:= 扩展的赋值运算符: += -= *= /= %= 它们都是先执行等号右边的表达式,最后再经过运算赋值给 ...

  9. 玩转Libmodbus(一) 搭建开发环境

    这篇文章是转载的,我主要是参考了其搭建环境的部分. 转载自: https://blog.csdn.net/qq_40452910/article/details/88560310 一.源码下载 1.l ...

  10. 03 Comments in C Programming C编程中的注释

    Comments 注释简介 Let's take a quick break from programming and talk about comments. Comments help progr ...