学习一项技能最困难的阶段就是如何开始, 这无异于是进入新的世界,接触的东西都是很难用过去经验进行衡量的,所以很容易茫然无措,觉得自己还需要准备准备,于是就再也没有然后。
这篇文章是写给那些打算学习Python的人看的,尤其是之前没有任何计算机基础的,希望你们看完之后可以学习Python。毕竟人生苦短,请用Python。
这世界上有很多编程语言,就和人类有不同语言一样,只不过编程语言是用来和计算机交流的。据我粗浅的了解,编程语言可以分为两种:
编译型,代表的有C, JAVA等。 你需要把代码写好,然后通过编译器翻译成机器语言。也就是说你写好一篇文章,然后把文章全文翻译好,然后给别人看。
解释型, 有R,Python等。所谓解释型,就是同声传译,你一边说,解释器一遍翻译给计算机听,然后计算机给出实时反馈。
Python是目前比较流行的语言,它的身影出现在各个场景中,目前最火的深度学习有它,传统的web开发,服务器运维有它, 知乎里还有各种用Python写爬虫的教程, 各种培训机构也都拿Python作为噱头(有人吐槽说这是因为培训机构没有能力教C/C++), 最后我们生物信息学也有biopython.
因此,Python就是一类翻译器,你可以把他看成XX词霸(欢迎植入广告),你查一句,他翻译一句。即便你把全文都打好,他也是一句一句翻译(此处不严谨,只是方便理解而已,因为涉及到字节码)
对于类Unix系统,比如说Linux和macOS, 你们都会自带一个版本的Python。在Linux中,可以通过whereis python
查看Python的安装路径。一般,自带的Python用于执行系统运行相关工作。apt/yum这类软件管理器,conda(anaconda和miniconda的自带的软件管理工具)其实也采用Python用于记录软件安装,你可以根据conda的报错日志进行判断 。
在Windows中必须要从官方中下载二进制安装包进行安装。
但是,对于初学者,我建议无论是macOS,还是Linux都可以去安装一款不错的Python科学发行版,anaconda, 下载地址为 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ (这是国内的清华源,速度会比较快)。作为新手,而且你用Windows的话,你就直接去下载anaconda吧,我进过很多坑,不会骗你的。
什么是anaconda, 为什么要装anaconda
很多人问装了anaconda, 还需不需要装Python呀。 这里的回答是:不需要。
因为anaconda是Python的发行版,就像ubuntu是Linux的发行版。Linux的本身就是一个内核,没有软件管理系统,没有可视化界面,当时为了让Linux能够方便使用,所以有些公司就把一些常用软件打包,在安装Linux的时候一起安装,保证了系统能够顺利使用。 (Win7, win8, win10的安装包那么大,就是微软把很多要的,不怎么要的环境都放在一起了)。也就是说anaconda是整合许多python常用包(包,可以理解成扩展功能)简单易用版。
PS: 其实大家都不太了解Linux的发展历史,但是我觉得还是很有必要了解的。当然换个比喻,目前各种Android产商都会推出自己的手机操作系统, 其实都是对谷歌的原生Android系统进行各种定制。如果某个产商声称自己“开发“了一个新的操作系统, 其实他的意思是让安卓系统更加适合自己家手机的硬件,然后还美化了一下桌面。
简单介绍一下anaconda自带的几个功能。
jupyter notebook: 网页版的文本编辑器,能够用tab进行命令补全还有联想,比较适合用于代码试错阶段。
qtconsole: IPython的图形界面版, IPython是原生Python解释器的功能增强版(也就是vim和vi的区别,智能手机和普通手机的区别)。其实你可以在命令行下输入ipython启动,而且强烈推荐学习它。
spyder: 这是一种整合开发环境(IDE),常用于Python的数据分析也就是(如果你用Rstudio,你会感到莫名的熟悉感)。可以在左边输入大块代码,进行某一类数据分析,在右下方执行比较少量的代码,然后右上方则是可以在教程,变量管理,文件管理进行切换。
、
那么为什么要用anaconda,而不是最基本的python呢?
第一: 对于windows而言,很多第三方包的安装真的很麻烦,真的很麻烦,比如说pandas和scipy等。新手最重要的是运行,而不是瞎折腾。
第二: 在类Unix系统中,系统自带的python一般是2.7版,而现在趋势是用3.x版本的python。既然我们需要装一个3.x版本的Python, 就考虑anaconda吧。anaconda还可以进行python版本管理,自由切换不同版本的Python环境。
很多同学会纠结到底到底是哪个版本,这里我的答案就是用3.x。如果你问我为什么不去学2.7, 我的回答只有一个,你需要的时候再去学不就行了。就像你学汽车,你问教练到底是手动挡,还是自动挡。你学会开车不就行了,原理都是共通的,上路最重要。你纠结版本半天,还不如敲上几十行代码实在。
第三: 对于Windows而言,Python不是必须的。但是对于macOS和Linux而言,系统的Python一般是负责软件安装等其他任务的。作为新手,装一个anaconda,那么根据环境变量的顺序,默认会使用anaconda的python,就不要对系统的Python动手了,免得出事情。
第四:anaconda提供了conda用于管理软件安装。对于非root的用户而言,对于mac用户而言,它提供了一种方便的软件管理方式, 添加不同的频道,就可以安装
conda install
conda update
conda upgrae
运行Python最重要的一步就是把代码解释给计算机听,所以我们安装Python,其实安装的就是解释器。其实下面的本质可以看成下面简陋的界面。
你可以和它打个招呼(>>>表示这一行是你的输入行)
>>> print("hello world")
hello world
然后你可以把它当做计算器,
>>> 10*8
80
如果你成功运行了以上命令,其实你已经在编程了。
一行一行输入,也不是不可以,就是如果输错了,就得重新来一遍,而且关闭了命令行(学习生信,请和命令行做朋友)就啥都没有了。
所以我们需要专门建立一个文本,在里面存放代码,比如说我用Windows自带的记事本(一定要用纯文本,一定要用纯文本,一定要用纯文本),写了几行代码。
然后我在命令行里运行
注1: 你可能会发现,我的文件名叫做hello.txt, 而不是常见的xxx.py。 原因是解释器只负责解释输入的内容,而不会管他到底是格式。后缀只不过是用于让人类方便判断而已,计算机只管里面的内容。
注2: 所有文件都要保存在某个系统路径上才能保证下次被使用,上面的spyder默认建立了一个tmp.py,请恰当改名符合你的需求。
人总是懒的, 希望敲一个代码的前几个就能联想出整个命令,希望能够自动换行。于是就有了各种文本编辑器,还有对应的插件。文本编辑器,简单的说,就是之前简陋的记事本的功能增强版。比如说我用的Visual Studio Code(其实我还用过sublime和atom, vim的插件用的不太好),还提供语法高亮。
你们可能会问,选择什么样的文本编辑器呀, 下图来自于Pythonists使用什么样的文本编辑器。
更加简单粗暴的答案就是Windows用notepad++, Linux和mac用sublime或atom。没有任何原因,单纯个人看法。
当然更近一步,当你的代码写到几百行的时候,调试代码的时候,我们需要一个工具能够告诉我们哪里出错了,或者在写代码的时候就能自动检查。这就是IDE(integer development environment), 更强大的工具。IDE有如下选择
对于编程语言初学者,我就不建议你们用了。个人推荐就是用Ipython测试你写在纯文本里面的代码, 然后用命令行运行,测试整体。等你写了一定量的代码后,你在用IDE也不迟。
读完这篇文章,我希望你知道如下几点内容:
Python的本质是解释器,而不是所谓的文本编辑器,或者IDE
anaconda是Python的发行版,整合了许多常用的包,建议安装
文本编辑器的目的是让我们快速,已经安心的写代码,能即使代码的错误。
IDE不建议新手用,这只是个人看法,你认为是偏见也好, 完全可以无视掉。
我希望你读完这篇文章之后,不要纠结选什么版本,下载最新的anaconda装上去就好了(目前是3.6),不要纠结用什么编辑器,notepad++或者sublime Text就行。
如果你打算继续学Python,希望我推荐什么教材的话,我推荐初学者用
编程小白的第一本 Python 入门书
笨方法学Python
a byte of Python
随便选一本看,但是第一本是更加面向初学者,画风也很好看,也是我小白阶段看的书。进阶的话,可以去看流畅的python,python核心编程,选择很多。