学习Python应该下载什么软件?

2020-03-19 22:01发布

5条回答
小李
2楼 · 2020-03-20 16:46

Python的编辑器也是众多的,下面说下几种:

提问者使用的是dos的编辑器,这一种当然不舒服;

Python的自带的有两种:

2.1 Shell形式:这一种和dos一样很纠结,如下图:

2.2 Edit形式,比较灵活,建议使用:其他的第三方,比如Eclips+PyDev等;

个人建议你使用里面的Edit模式,启动方法是:开始--所有程序--Python--IDLE(PythonGUI)。

007
3楼 · 2020-09-14 11:44


 


痛点




授课的对象是信息科学、数据科学专业的硕士与博士研究生。跟在国内一样,我依然使用翻转教学(flippedinstruction)方式。


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


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


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


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


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


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


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


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


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


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


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


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


环境


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


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


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




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


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




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


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


https://colab.research.google.com


就可以看到以下页面。




选择新建Python3笔记本。


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




对,就是这么简单。


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


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


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




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




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




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




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




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


求助


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


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




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


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


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


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


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


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


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


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


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


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




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


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


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


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


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


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


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


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


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




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




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




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


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


协作


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


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


有的人,是这样协作的。


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


对方改完,发回来。


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


……


这样显然效率很低。


有没有高效的方法?


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




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




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


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




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




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


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




例如输入以下内容。


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


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


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


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


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




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


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




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


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




版本


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


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




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




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


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


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




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




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


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


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


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


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


小结


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


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


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


自动配置

    有效求助

    协作编程

    版本控制

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


祝Python编程学习愉快!


延伸阅读


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


学Python,能提升你的竞争力吗?

    如何高效学Python?

    《文科生数据科学上手指南》分享

喜欢请点赞和打赏。还可以微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)。


如果你对Python与数据科学感兴趣,不妨阅读我的系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。


彭彭彭
4楼 · 2021-01-16 16:28

Python的编辑器也是众多的,下面说下几种:

提问者使用的是dos的编辑器,这一种当然不舒服;

Python的自带的有两种:

2.1 Shell形式:这一种和dos一样很纠结,如下图:

2.2 Edit形式,比较灵活,建议使用:其他的第三方,比如Eclips+PyDev等;

个人建议你使用里面的Edit模式,启动方法是:开始--所有程序--Python--IDLE(PythonGUI)。

灰机带翅膀
5楼 · 2021-08-26 14:18

开发环境

软件开发环境(Software Development Environment,SDE)是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化

开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为

工具集成和软件的开发、维护及管理提供统一的支持。

IDE

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、

调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的

软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立

运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver

等),因为很多项任务会自动生成。

Python开发环境

Python其实和其他的编程语言还有点不太一样,它是一种脚本语言,就如同MATLAB语言一样,我们也可以管它叫解释型语言吧。因

此,python的运行的过程中,和我们的传统语言,比如C、C++这种编译型语言不太一样,python的运行其实是一种解释的过程,因此

它需要解释器,当然,这里我们不考虑把Python编译成可执行文件。如果想运行Python程序,那么必不可少的就是Python的开发环境。

在Python官网,有提供Python的原版开发环境,该环境为最核心,也是"干净”或者说"纯净”的环境。

Anaconda

Anaconda其实属于一站式服务,里面集成了Python的运行环境,并集成了数百种库,此外该软件里面还有Anaconda Navigtor、

Jupyter notebook、qtconsole和spyder等,由于集成的功能比较多,用起来相对来说省心一些。

常见编辑器

pycharm,sublime text ,vscode ,vim等。


根据用途可以分为两个类型,一种是Python代码编辑器,一种是Python集成开发工具,两者配合可以极大的提高Python开发人员的效率

相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问