Python发行版和IPython
Python有很多不同的发行版,这一方面是这种语言的灵活性造成的,另一种,在不同发行版之间进行选择,有时也是一件头疼的事情。入门者第一个要面临的选择是python2还是python3,单是官方这两个不兼容的发行版就造成了很大分歧,当然,就目前的情况来看,python3显然代表的是未来方向,除非有逼不得已的原因,当然是要从python3开始。
除此之外,Python还有几个非官方的主要发行版,影响力起起伏伏。第一个是IronPython,这是用于兼容微软.net产品,在微软倡导下发行的;与此类似的是Jython,即用Java实现的Python,主要是为了方便调用Java各个库;Cython也是一个主要分支,主要特点是编译成C语言以提高效率;还有用Python实现的Python语言pypy. Ipython (交互式Python)作为Python一个非常重要的分支,广泛应用于科学计算,在科学计算的Python发行版Anaconda和Sage等都内置安装。
IPython的主要开发工具采用Jupyter Notebook(之前的名字就叫做IPython Notebook),学习IPython可以直接在Shell下进行,但更推荐的当然还是采用Jupyter Notebook以提高效率。
本质上,IPython和原生版的Python没有太大区别,其主要特点之一是可以通过一些被称为魔术方法的方法对Python进行有效扩充,因此非常适宜于初学者学习。
基本命令
?和 ??
在命令后输入?取得帮助文档,输入??查看源代码。如果不能查看源代码,可能是由于源代码并非使用Python编写。
用来补全命令。
变量下划线用于获取之前的输出,比如print()输出前一条命令的输出,print(_),倒数第二行输出
禁止命令输出,在行末尾加分号;
如果只记得命令的一部分,可以使用*通配符。
在IPython中使用shell命令,通过!前缀加shell命令实现。!pwd。可以直接与Ipython输入输出值,如dir=!pwd。有时需要用%cd命令才能实现导航,类似shell魔法命令包括%mv,%rm,%rmdir等
IPython Shell的部分快捷键。
Ctrl+ a |( 行首) e(行尾)b(前一个字符) f(后一个字符) d (向后删除一个字符) k(剪切至行尾)u(从开头剪切到光标之前),y(粘贴),t(交换前两个字符), p (前一个历史命令),n(后一个历史命令),l(清屏),c(终端当前会话),d(退出终端)
魔法命令。行魔法以%开头,单元魔法在%%之间
- 粘贴代码块%paste和%cpaste可以避免从网站上或其他地方粘贴代码时格式不正确的问题。
- 运行程序代码%run myscript.py
- 计算下一行代码执行时间 %timeit
- 魔法函数帮助%magic, %lsmagic
- 查看输入历史%history
- 控制异常输出详细程度 %xmode Plain,Context,Verbose
- 追溯不足时通过%debug探索堆栈空间 %pdb自动启动调试器
- 分析整个脚本%prun,逐行分析 %lprun
- 分析内存使用情况用 %memit和%mprun
网络资源
- Jupyter 网站
- Ipython网站
- nbviewer网站
- 有趣的IPython Notebook集合