专栏名称: 生信媛
生信媛,从1人分享,到8人同行。坚持分享生信入门方法与课程,持续记录生信相关的分析pipeline, python和R在生物信息学中的利用。内容涵盖服务器使用、基因组转录组分析以及群体遗传。
目录
相关文章推荐
生物探索  ·  Nature | ... ·  3 天前  
生物制品圈  ·  释放生成式人工智能在药物发现中的潜力 ·  昨天  
生信宝典  ·  Cell | ... ·  昨天  
生物学霸  ·  ACS ... ·  昨天  
生信菜鸟团  ·  R tips:使用最近邻算法进行空间浸润带的计算 ·  3 天前  
51好读  ›  专栏  ›  生信媛

如何“开始”学Python

生信媛  · 公众号  · 生物  · 2017-08-04 21:52

正文

学习一项技能最困难的阶段就是如何 开始 , 这无异于是进入新的世界,接触的东西都是很难用过去经验进行衡量的,所以很容易茫然无措,觉得自己还需要准备准备,于是就再也没有然后。

这篇文章是写给那些打算学习Python的人看的,尤其是之前没有任何计算机基础的,希望你们看完之后可以学习Python。毕竟人生苦短,请用Python。


这篇文章不会谈及

  • XXX报错了,我该怎么办。初学者遇到的问题基本上都能用搜索引擎搞定,如果百度搞不定,请用英文关键字去谷歌。如果你问我的问题,是可以搜索引擎找到的,我会慎重考虑 拉黑 你的。

  • 基于上述这一句话,其实这篇文章也没有必要写。因为你完成可以搜索到许多入门资源,但是考虑大家未必能够甄别,这里强势推荐编程小白的第一本 Python 入门书


什么是Python

这世界上有很多编程语言,就和人类有不同语言一样,只不过编程语言是用来和计算机交流的。据我粗浅的了解,编程语言可以分为两种:

  • 编译型,代表的有C, JAVA等。 你需要把代码写好,然后通过编译器翻译成机器语言。也就是说你写好一篇文章,然后把文章 全文翻译 好,然后给别人看。

  • 解释型, 有R,Python等。所谓解释型,就是同声传译,你一边说,解释器一遍翻译给计算机听,然后计算机给出实时反馈。

Python是目前比较流行的语言,它的身影出现在各个场景中,目前最火的深度学习有它,传统的web开发,服务器运维有它, 知乎里还有各种用Python写爬虫的教程, 各种培训机构也都拿Python作为噱头(有人吐槽说这是因为培训机构没有能力教C/C++), 最后我们生物信息学也有biopython.

因此,Python就是一类 翻译器 ,你可以把他看成XX词霸(欢迎植入广告),你查一句,他翻译一句。即便你把全文都打好,他也是一句一句翻译(此处不严谨,只是方便理解而已,因为涉及到字节码)

如何安装Python

对于类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最重要的一步就是把代码解释给计算机听,所以我们安装Python,其实安装的就是 解释器 。其实下面的本质可以看成下面简陋的界面。

你可以和它打个招呼(>>>表示这一行是你的输入行)

>>> print("hello world")
hello world

然后你可以把它当做计算器,

>>> 10*8
80

如果你成功运行了以上命令,其实你已经在编程了。

一行一行输入,也不是不可以,就是如果 输错了 ,就得重新来一遍,而且关闭了命令行(学习生信,请和命令行做朋友)就啥都没有了。

所以我们需要专门建立一个文本,在里面存放代码,比如说我用Windows自带的记事本(一定要用纯文本,一定要用纯文本,一定要用纯文本),写了几行代码。


然后我在命令行里运行







请到「今天看啥」查看全文