Python 语言学习笔记第一篇。
于我而言,编程语言的学习向来比较困难。本科学校要求必修C语言基础课程,我学的相当吃力,最后也只是勉强及格。读研时,由于攻读的专业方向需要借助Matlab进行数据分析,我才又重新开始接触编程。后来在课题组一位老师的推荐下,了解到Python这门语言其实更适合进行数据分析。但当时大部分精力用于专业知识和Matlab的学习上,对Python的学习总是断断续续,更没有形成系统的知识体系,结果就是既浪费了时间,又没学好这门语言。痛定思痛之后,决定从头开始并记录下自己的学习过程,也就有了这个系列的笔记。
1 Python语言介绍
程序语言一路发展,从最初的机械编程(插线/拔开关)到机器语言(1010001),从汇编语言(MOV AX, 0x300)到高级语言。高级语言种类繁多,如1957面向科学计算开发的FORTRAN;1964年 ,BASIC语言使编程得以普及;1972年针对操作系统底层开发了C语言;1991年开发出面向对象的Python语言;以及后来的Java、PHP、Golang、Swift等等。这些语言各有特色和优势,应用领域也有所不同。近年来,随着大数据及人工智能的发展,Python语言迎来了其发展高峰。
Python语言的开发者为荷兰人吉多·范罗苏姆(Guido van Rossum),1989年12月,他为了打发圣诞节假期的无趣而开发出Python(大佬……)。Python语言继承了多种优秀语言的特性:
是一种高级动态、完全面向对象的语言;
函数、模块、数字、字符串都是对象;
完全支持继承、重载、派生、多继承;
有益于增强代码的复用性
Python有自己的程序设计风格,在Python中输入import this
就可看到Python哲学。
1 | import this |
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
2 安装Python
Python官方网站提供了适用于各个平台、各个版本的程序安装包。由于Python2.x版本系列已不再更新维护,因此建议从Python3.0以上版本开始学习,但不建议使用最新的版本(目前最新版为3.8),因为与Python配套的第三方模块的更新可能会相对滞后;而且对于初学者来说,基础知识才是最重要的,新版本的特性可以放到以后再学。本系列笔记基于Windows10系统的Python3.7.6版本整理。
在安装页面,选择下载安装程序(executable installer),64位操作系统选择图中红框部分,如果是32位操作系统可选择Windows x86的安装程序。
⚠ 在安装时注意勾选把Python添加到环境变量的选项,同时建议以自定义的方式安装。
安装完成后,在windows菜单栏就可以找到Python3.7的图标了。
3 pip模块
3.1 pip模块的配置
Python的安装过程自带一个pip模块。pip是Python的一个包管理器,通过此模块可以安装、升级、卸载第三方扩展包。pip官方下载源的服务器位于国外,导致每次下载时速度缓慢,因此有必要重新配置一下,将下载源修改为国内的镜像源。详细配置过程可参考B站视频:解决Python安装第三方库超慢的问题,提速10倍的方法。下面以修改为阿里云镜像源为例列出我的配置过程:
- 首先在
C:\Users\Username
(Username为个人电脑用户名)目录下创建一个名为pip的文件夹,在pip文件夹下新建一个pip.ini
的文件,注意此文件后缀名就是.ini
,不是.txt
。 - 使用文本编辑器打开后输入以下内容: ⚠ global和install前后的方括号[ ]要在英文状态下输入,而且使用记事本默认的ANSI编码格式就可以。修改成功后就可以快速的安装第三方扩展包了。
1
2
3
4[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
3.2 pip常用命令
pip官网有详细的使用说明,但对于像我这种普通用户,无需全部掌握,只要熟悉以下常用的基本命令就可以。
查看pip版本
1
pip --version
升级pip
1
python -m pip install -U pip
安装扩展包
在上述命令中,只需要把1
pip install SomePackage
SomePackage
更换为具体的扩展包名称就可以了,如Numpy、Pandas等。此命令会默认安装扩展包的最新版本。查看所有已安装扩展包
1
pip list
查看已安装扩展包中所有可升级的包
1
pip list --outdated
升级扩展包
这条指令只能升级一个扩展包,如果需要一次性升级很多扩展包,可以使用pip-review这个扩展包。1
pip install --upgrade SomePackge
在使用1
2
3
4pip install pip-review # 安装pip-review
pip-review # 查看可升级的包
pip-review --auto # 自动升级所有包
pip-review --local --interactive # 交互式页面更新包,提供可操作选项[Y]es, [N]o, [A]ll, [Q]uitpip-review --auto
指令自动更新所有扩展包时,可能会出现因某个包无法更新而报错的情况,只需要把报错的包单独升级后再运行pip-review --auto
指令即可。卸载扩展包
1
pip uninstall SomePackage
4 Jupyter Notebook的安装与配置
Python自带IDLE,功能较为简单,但对于新手来说却是最适合的。此外还有很多第三方IDLE,如PyCharm、Anaconda、Jupyter等等,这些开发环境功能更为强大,当然也需要花费不少的时间去学习如何使用。但是如果你和我一样并不是专职程序员,那就没有必要太过纠结于使用哪种IDLE,也无需花费大量精力去研究这些工具。当然,如果你也想记录自己的学习过程,形成笔记的话,那我强烈建议使用Jupyter Notebook。
4.1 安装
打开电脑命令提示符(command,cmd)
或Windows PowerShell
,使用pip工具安装:
1 | pip install notebook |
安装完成后在Shell窗口输入jupyter notebook
(注意此处jupyter和notebook之间是有空格的),该命令会自动在浏览器中打开一个地址为
http://localhost:8888/tree
的页面,接下来就可以正常使用了。在使用过程中,只要不关闭命令提示符
或Windows PowerShell
面板,就可以保证notebook与后台保持连接的状态。在此状态下,随时可以关闭浏览器,只要再打开浏览器输入'localhost:8888/tree'即可再次使用。
4.2 更改默认路径
Jupyter Notebook默认打开的路径在C盘用户目录下,如果想要修改默认路径的话,需要修改配置文件。首先生成成默认配置文件,在Shell面板中输入:
1 | jupyter notebook --generate-config |
该指令会在C:\Users\Username\.jupyter
(Username
是个人电脑的用户名)目录下生成一个名为jupyter_notebook_config.py
的默认配置文件。使用文本编辑器打开此文件,查找关键词c.NotebookApp.notebook_dir
,删除该语句句首的井号注释符#
,把需要修改的路径放置在语句等号后面的引号中即可,如:c.NotebookApp.notebook_dir = 'D:/Python'
。再使用jupyte
notebook时,默认打开的目录就变为D:/Python
了。
4.3 更改主题
默认的主题已经很好了,唯一的缺点就是字体太小,在网上查找并尝试了各种方法,包括修改custom.css
、codemirror.css
等文件,虽然输入字体的大小可调,但输出字体的大小始终无法调节。目前可行的方法就是安装第三方主题插件jupyter-themes,在Shell窗口输入以下命令:
1 | # install jupyterthemes |
然后输入jt -l
可查看内置主题列表,有chesterish、grade3、gruvboxd、gruvboxl、monokai、oceans16、onedork、solarizedd、solarizedl
九个主题可供选择,而且可以更改字体样式、大小等。jupyter-themes的github页面有详细说明。下面是我的配置指令:
1 | jt -t grade3 -f firacode -fs 14 -nf merriserif -nfs 12 -tf merriserif -tfs 14 -ofs 14 -cellw 70% -lineh 150 -T |
4.4 安装扩展插件
安装一些扩展插件可极大提高notebook的使用,首先安装并激活jupyter_contrib_nbextensions
1 | pip install jupyter_contrib_nbextensions |
再打开jupyter notebook就可以看到Nbextensions标签了,单击扩展可看到详细用方,通过勾选启用相应扩展即可,下面是我使用的一些插件:
注意勾选 autopep8 后可能会提示找不到该模块,此时需要安装autopep8:
1 | pip install autopep8 |