社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何“开始”学Python

生信媛 • 7 年前 • 1062 次点击  

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

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


这篇文章不会谈及

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

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


什么是Python

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

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

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

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

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

如何安装Python

对于类Unix系统,比如说LinuxmacOS, 你们都会自带一个版本的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自带的记事本(一定要用纯文本,一定要用纯文本,一定要用纯文本),写了几行代码。


然后我在命令行里运行

注1: 你可能会发现,我的文件名叫做hello.txt, 而不是常见的xxx.py。 原因是解释器只负责解释输入的内容,而不会管他到底是格式。后缀只不过是用于让人类方便判断而已,计算机只管里面的内容。
注2: 所有文件都要保存在某个系统路径上才能保证下次被使用,上面的spyder默认建立了一个tmp.py,请恰当改名符合你的需求。

文本编辑器和IDE

人总是懒的, 希望敲一个代码的前几个就能联想出整个命令,希望能够自动换行。于是就有了各种文本编辑器,还有对应的插件。文本编辑器,简单的说,就是之前简陋的记事本的功能增强版。比如说我用的Visual Studio Code(其实我还用过sublime和atom, vim的插件用的不太好),还提供语法高亮。

你们可能会问,选择什么样的文本编辑器呀, 下图来自于Pythonists使用什么样的文本编辑器。


更加简单粗暴的答案就是Windows用notepad++, Linux和mac用sublime或atom。没有任何原因,单纯个人看法。

当然更近一步,当你的代码写到几百行的时候,调试代码的时候,我们需要一个工具能够告诉我们哪里出错了,或者在写代码的时候就能自动检查。这就是IDE(integer development environment), 更强大的工具。IDE有如下选择

  • Eclipse + PyDev插件,

  • Python Tools for Visual Studio

  • PyCharm

  • Spyder

对于编程语言初学者,我就不建议你们用了。个人推荐就是用Ipython测试你写在纯文本里面的代码, 然后用命令行运行,测试整体。等你写了一定量的代码后,你在用IDE也不迟。

总结

读完这篇文章,我希望你知道如下几点内容:

  • Python的本质是解释器,而不是所谓的文本编辑器,或者IDE

  • anaconda是Python的发行版,整合了许多常用的包,建议安装

  • 文本编辑器的目的是让我们快速,已经安心的写代码,能即使代码的错误。

  • IDE不建议新手用,这只是个人看法,你认为是偏见也好, 完全可以无视掉。

  • 我希望你读完这篇文章之后,不要纠结选什么版本,下载最新的anaconda装上去就好了(目前是3.6),不要纠结用什么编辑器,notepad++或者sublime Text就行。

如果你打算继续学Python,希望我推荐什么教材的话,我推荐初学者用

  • 编程小白的第一本 Python 入门书

  • 笨方法学Python

  • a byte of Python

随便选一本看,但是第一本是更加面向初学者,画风也很好看,也是我小白阶段看的书。进阶的话,可以去看流畅的python,python核心编程,选择很多。


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/apIe5HWVpB
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/2922
 
1062 次点击