文章目录
- 一:python解释器与IPython基础
- 1.python解释器
- 2.IPython基础
- 二:Jupyter notebook
- 三:一些常用技巧
- 1.Tab补全
- 2.内省
- 3.中断代码
- 4.复制代码
- 5.快捷键
- 6.魔法函数
一:python解释器与IPython基础
1.python解释器
python是一种解释性语言。python解释器通过一次执行一条语句来运行程序。
在安装python时,默认的是官方版本的解释器:CPython,这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器,以>>>为提示符。
但是大部分做数据分析或科学计算的人士使用得多的是Ipython解释器和Jupyter notebook。
CPython与IPython都是通过输入exit()退出的。
2.IPython基础
IPython解释器是基于CPython之上的一个交互式解释器,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。以In [序号]:为提示符,交互式与可读性比CPython略强。
像启动CPython一样,在命令行中输入ipython命令可以启动IPython命令行:
IPython将大多数Python对象格式化为更可读,更美观的形式。可以不用print()打印,下面是比较:
二:Jupyter notebook
Jupyter项目的主要组件是notebook,以一个web笔记本,一种交互式的文档类型。有Ipython的功能,但是是一种更高级的数据分析的环境。Python的Jupyter内核(交互式计算协议的实现)使用Ipython系统进行内部活动。
在终端中输入jupyter notebook启动Jupyter,或者直接在某个浏览器中输入http://localhost:8888/,这里要注意,我们打开时要在项目的文件夹下打开Jupyter:
在右上角选择New后选择Python3就可以新建一个笔记本:
输入代码后可以用快捷键Shift+Enter执行:
当保存后,会自动生成一个后缀名为.ipynb的文件,包含输入输出的所有内容。可以被其他Jupyter用户载入,编辑:
三:一些常用技巧
1.Tab补全
其实,IPython与标准的Python解释器区别没有那么大,只是增加了一些功能。其中一个主要的提升是tab补全功能。
在命令行输入表达式时,按下Tab键即可为任意变量(对象,函数等)搜索命名空间(命名空间可将范围缩小,还可以避免同名冲突),还可以获得任一计算机路径,进行匹配。
在IPython中
:
直接按Tab是寻找包含字符串开头的变量:
按下"."+Tab是对方法,属性的名称进行补全,会自动找到相符合的方法和属性:
这里要注意:
在IPython中默认隐藏了以下划线开始的方法和属性,需要查看的话就需要先输入下划线
:
在Jupyter notebook中
:
自动补全是在下拉选项中展现:
使用Tab补全可以节省不少时间。
2.内省
什么是内省?
内省是指计算机程序在运行时检查对象类型的一种能力,通常也可以称作运行时类型检查。下面是实例。
可以用(?)显示关于对象的一些信息,函数的话会显示文档字符串:
用(??)可以显示函数的源代码:
内省还可以显示所有匹配通配符表达式的命名空间:
3.中断代码
在任意代码运行时Ctrl+C,都会引起keyboardInterrupt,将导致所有的Python程序立即停止。但是一些特殊情况下可能不能停止。
4.复制代码
在IPython中,复制代码可以用到%paste与%cpaste魔法函数。%paste会获得剪贴板的所有文本,并作为一个代码块去运行。
%cpaste类似,不同的是会给出一个特殊的命令行,需要去手动粘贴代码,方便进行检查。
在Jupyter notebook可以直接将代码复制粘贴到代码单元。
5.快捷键
在IPython与Jupyter notebook中,有很多快捷键,这里就不一一介绍了,大家可以自行查看。
6.魔法函数
IPython的特殊命令被称为魔法命令,这些命令可以让大家方面使用IPython,前缀符是%。可以通过%automagic启动/关闭自动魔法,就是可以不加%使用。
可以用变量把魔法方法的输出复制到某个变量中。
下面介绍几种常见的魔法方法:
%quickref
显示IPython快速参考卡
%magic
显示所有可用魔法方法的详细文档
%debug
从最后发生报错的底部进入交互式调试器
run
在IPython中运行一个脚本
%time
报告单个语句执行时间
%timeit
多次运行单个语句计算平均运行时间,可用于估计代码最低运行时间
还有上面的==%paste
与
%cpaste==,以及一些其他的方法,在下面用到时会介绍。
有关数据分析的基础已经了解完了,解析来我们就要进入数据分析的海洋了。