安装

安装python2版本的软件包就用命令

   pip install ipython

安装python3版本对应的软件包就用命令

  pip3 install ipython

进入了ipython,ipython会提示您键入下面四个命令之一去试着使用ipython:

命令名 说明

?   ipython特性的介绍和概述
%quickref 一份手册,包含了所有的命令
help python的帮助系统
object? 关于object的详细信息,如果键入object??会更详细

首先是推荐您看一下quickref的。您注意到了,这个命令以%开头。所有以%开头的方法,都是所谓的魔术方法(Magic function),
也就是ipython内置的一些方法。

需要注意的是,魔术方法有%和%%之分,比如%timeit和%%timeit。这玩意在ipython中有专门的叫法,
前者叫line magic后者叫cell magic。

顾名思义,前者是专门针对一行的命令,后者针对多行的命令(这是notebook中的术语,关于notebook请参阅最后),如是而已。
所有的魔术方法都可以查看源码,仔细阅读的话,对自己写代码也很有裨益,具体方法是在魔术方法后面加??,譬如%timeit??。
代码是经过高亮和格式化的,

应该很容易阅读才是。如果您有着奇妙的好奇心的话,想必刚才也尝试过%timeit?。区别是,这次没有源码出现对吧。
但是其他信息,比如type什么的指导性内容会显示出来。

Tab键自动完成


在shell中输入表达式时,只要按下Tab键,当前命令控件中任何与输入的字符串相匹配的变量(对象、函数等)就会被找出来。


ps.之前我发现我的ipython没有Tab键自动补全功能,tab键的功能是缩进。最后 pip install pyreadline即可解决。


下面这个例子,输入b.后按下<tab>键即可得到下图的结果。



内省


在变量的前面或后面加上一个问号(?)就可以将有关该对象的一些通用信息显示出来。这就叫做对象的内省。



如果对象是一个函数或实例方法,则其docstring也会被现实出来。


使用??还将显示出该函数的源代码。



一些字符串配以通配符(*)即可显示出所有与该通配符表达式相匹配的名称。

中断正在执行的代码

按下Ctrl-C就会引发一个KeyboardInterrupt。除了一些非常特殊的情况下,绝大部分python程序都会立即停止执行

执行剪贴板中的代码

书上说使用ctrl+shift+v将剪贴板的代码片段粘贴出来,然而windows系统似乎不可行,所以鼠标右键粘贴好了。

%paste可以承载剪贴板中的一切文本,并在shell中以整体形式执行。

%cpaste跟%paste差不多,只不过它多出了一个用于粘贴代码的特殊提示符而已。如果发现粘贴的代码有错,只需要按下ctrl+c即可终止%cpaste提示如。

键盘快捷键

在此粘贴给大家作为备忘。

  1. Ctrl-P    或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令
  2. Ctrl-N   或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令
  3. Ctrl-R   按行读取的反向历史搜索(部分匹配)
  4. Ctrl-Shift-v   从剪贴板粘贴文本
  5. Ctrl-C   中止当前正在执行的代码
  6. Ctrl-A   将光标移动到行首
  7. Ctrl-E   将光标移动到行尾
  8. Ctrl-K   删除从光标开始至行尾的文本
  9. Ctrl-U   清除当前行的所有文本译注12
  10. Ctrl-F   将光标向前移动一个字符
  11. Ctrl-b   将光标向后移动一个字符
  12. Ctrl-L   清屏

魔术命令

魔术关键字以%开头,如果automagic打开了,则不用输入%,否则需要,使用automagic可以切换状态
可以使用%magic参看所有魔术方法

命令 说明
%quickref 显示IPython的快速参考
%magic 显示所有魔术命令的详细文档
%debug 从最新的异常跟踪的底部进入交互式调试器
%hist 打印命令的输入(可选输出)历史
%pdb 在异常发生后自动进入调试器
%paste 执行剪贴板中的Python代码
%cpaste 打开一个特殊提示符以便手工粘贴待执行的Python代码
%reset 删除interactive命名空间中的全部变量/名称
%page OBJECT 通过分页器打印输出OBJECT
%run script.py 在IPython中执行一个Python脚本文件
%prun statement 通过cProfile执行statement,并打印分析器的输出结果
%time statement 报告statement的执行时间
%timeit statement 多次执行statement以计算系综平均执行时间。对那些执行时  间非常小的代码很有用
%who、%who_ls、%whos 显示interactive命名空间中定义的变量,信息级别/冗余度可变
%xdel variable 删除variable,并尝试清除其在IPython中的对象上的一切引用

env 显示环境变量
ed或edit 编辑一个文件并执行
ed -x filename 编辑文件不执行
edit 3:10 编辑3:10行的指令并执行
hist 显示历史纪录,可以用-n增加行号
hist 3:10 显示3-10行的历史纪录
bg function 把function函数放到后台执行
pwd 当前目录
pycat filename 语法高亮显示一个文件
macro name 1:10 把1:10行的代码设为name宏
save filename 1:10 把1:10行代码保存到文件中
time statement 计算一段代码执行时间
timeit statement 自动选择重复和循环次数计算一段代码执行时间
run filename 执行一个文件,如果希望防止执行的,需要增加if name == “main“:
autoindent 如果启用,粘贴的时候会自动缩进代码
reset 重置所有变量
Bash命令
cls 清除屏幕
colors

基于Qt的富GUI控制台

Ipython团队开发了一个基于Qt框架(其目的是为终端应用程序提供诸如内嵌图片、多行编辑、语法高亮之类的富文本剪辑功能)的GUI控制台。

使用

ipython qtconsole --pylab=inline

来启动的话可为其添加绘图功能。

ps.这一步刚开始无法执行,我的解决方法是:

pip install qtconsole,就可以运行了- -..

%run命令

在ipython会话环境中,所有文件都可以通过%run命令当做Python程序来运行。

输入 %run 路径+python文件名称即可。

ipython一般的使用,通常只是为了测试一行或者几行代码是否能够执行。究其原因,还是因为命令行中书写长代码相较于在文件中写代码并不方便,一方面是格式,另一方面是在命令行中写代码,一旦中间代码写错,修改起来还是很麻烦的。于是我们不得不一次次退出ipython,去python xxx.py执行。或者tmux开两个窗口来测试。

但是其实ipython已经提供了很方便的机制用来执行一个脚本,就是%run命令,%run可以简化为run。

使用起来类似于熟悉的python test.py,使用run test.py就好。run命令还可以附加选项,常用的有-t选项,这个会在脚本执行完后,打印出执行的cpu timings。如果指定了-t选项,后面可以跟一个-Nx,x代表一个数字。表示重复执行x次。

另外比较好用的是-d选项,这个会在pdb中运行脚本。后跟-bxx打断点。个人没有什么python调试的经验,您有兴趣可以亲自尝试。

还有一个-p选项,这个选项会开启python profiler,从而打印出详细的执行时间、函数调用等等信息供优化参考。

%timeit

这个命令用来测试一条命令执行的时间,一般而且,会重复100次运行这个命令,然后取出最好的3个结果取平均值。

试着执行下面的命令:

In[1]: %timeit [x*x for x in range(100000)]
同样,可以指定选项。

-n指定重复次数,默认100

-r是取多少个结果的平均值,默认是3

顺带一提,%timeit测出来的结果远比真实运行更快,原因是,timeit执行中,会暂时关闭掉垃圾回收(gc)。

shell中使用python变量

其实这个不算是魔术方法啦,只是单独列出来也不太合适,所以也就写在这里。

请看下面这段代码:

folder = 'data'
mkdir $folder
cd %folder

注意到了么,mkdir是一个魔术方法,它是%mkdir的一个链接,%mkdir事实上就是shell中的mkdir方法。而folder是一个python变量。但是,确实,shell下的命令访问了python的变量,只是在变量名前面加了$。如果您熟悉shell脚本的话,这种方式应该很亲切才对。

%bookmark

这个方法通常用来记忆路径,譬如说,您每次都需要cd进一个叫做github/miko/loli/shoujo的目录,这时候,您可以对这个路径做一个书签,%bookmark shoujo github/miko/loli/shoujo,这样以后就可以直接cd shoujo这样。

顺便,如果没有指定路径,会默认使用当前路径。

%alias

正如名字揭示的,这个方法用来指定别名。不过,ipython的%alias还能进行参数传递。

看看下面这段:

In [1]: %alias largest ls -1sSh | grep %s
In [2]: largest circles

很容易懂不是么?%alias后面跟的那个参数就是别名,然后可以通过%s来指定一个参数,使用时传入。

%store

默认的,别名只会存在于本次会话中,如果希望下次还能使用这个别名,使用%store方法存下来吧。%store latest

另外,没保存也不要紧,%store -r会恢复上次会话的别名。

%hist

ipython中history会保存所有会话中的记录,所以隔一年什么的记录就会相当多啦。

虽然我知道你们都会用up,down来寻找历史记录……恩,试试ctrl+r,有惊喜。

另外,类似于hist 3-7什么的,好像也不用我解释就是了。

-g选项和grep类似,可以查找些东西出来,然后-n显示行号,-f保存历史记录到文件中去,-p把行号显示为n:>>>,-n把输入的结果显示出来

一起用ipython的更多相关文章

  1. 利用Python进行数据分析(3) 使用IPython提高开发效率

      一.IPython 简介 IPython 是一个交互式的 Python 解释器,而且它更加高效. 它和大多传统工作模式(编辑 -> 编译 -> 运行)不同的是, 它采用的工作模式是:执 ...

  2. ipython notebook 浏览器中编写数学公式和现实

    Python Notebook简介1 http://www.cnblogs.com/cbscan/p/3545084.html $ python -m IPython http://pypi.pyth ...

  3. window下安装anaconda ipython和spyder都打不开

    1. 环境 win7 64位,软件是Anaconda2-4.1.1-Windows-x86_64.exe 2. 出现的问题 ipython打不开,一闪而过 spyder点击没有反应 anaconda ...

  4. spark 2.0 中 pyspark 对接 Ipython

    pyspark 2.0 对接 ipython 在安装spark2.0 后,以往的对接ipython方法失效,会报如下错错误: 因为在spark2.0后对接ipython的方法进行了变更我们只需要在py ...

  5. [转]IPython Notebook简介1

    原文:http://hyry.dip.jp/tech/slice/slice.html/35 Python Notebook简介1 作者 : RY    标签: cython ipython-note ...

  6. 源码安装ipython,并在ipython中整合spark

    一.安装ipython 下载ipython, https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b9 ...

  7. [No000041]如果你被ruby惯坏了,不如试试python3-在Windows下安装ipython

    说明:我比较喜欢绿色软件,因此,下载的是python3为zip包.所以执行命令时请注意当前路径. 先安装pip (请去官网下载get-pip.py 地址: https://pip.pypa.io/en ...

  8. 利用ipython实现多线程

    多线程来批量化处理数据的时候希望简单的应用,使用ipython会很简单 参考这里

  9. Python,Jupyter Notebook,IPython快速安装教程

    0.安装环境 Windows10,Python3.5.1,IPython,jupyter notebook,and other functionality 官方安装文档Linux版3.x 官方安装文档 ...

随机推荐

  1. ZOJ 4062 - Plants vs. Zombies - [二分+贪心][2018 ACM-ICPC Asia Qingdao Regional Problem E]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4062 题意: 现在在一条 $x$ 轴上玩植物大战僵尸,有 $n$ ...

  2. arcpy加载mxd文件时,无效的MXD路径,提示assert (os.path.isfile(mxd) or (mxd.lower() == "current")), gp.getIDMessage(89004, "Invalid MXD filename")

    无效的MXD路径,将路径前加‘u’,改为这种: mxdPath = u"C:\\1331\\DB\\Original Files\\dd.mxd" 参考: https://gis. ...

  3. drawrect&layoutsubviews

    drawrect触发方法: 设置frame setneeddisplay contentmode设置为redraw sizetofit layoutsubviews触发方法 setframe layo ...

  4. springboot中通过cors协议解决跨域问题

    1.对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现. 针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处 ...

  5. java之jdbc使用

    简单使用 Statement 通过 Statement 执行 ,其实是拼接 sql 语句的.  先拼接 sql 语句,然后在一起执行. package com.zze.test; import jav ...

  6. ORA-01555错误

    有这样一种情况 0:00 我们开始查询,查询的数据是100万条 0:01 一个session update了第100万条数据 0:01 update提交了,完成 1:00 我们的查询还在继续,只读到了 ...

  7. PowerBI新功能: 自定义数据连接器(Data Connector)

    你是不是觉得原有的数据连接器(Data Connector)列表,就像女人的衣柜,总少那么一件你想要的呐? 现在,你的救星来了!你可以自己造一个了! Power BI的数据连接器(Data Conne ...

  8. One VS Rest

    简单来说就是分类的类别有多个,不再是二分,比如根据某些特征,什么温度.湿度.空气流动情况来预测天气,天气的label不能说是好天气和坏天气两种,而是分晴天.雨天.阴天,雪天等等,对于决策树或者从计算机 ...

  9. iscroll4升级到iscroll5全攻略笔记

    前段时间在搞移动终端(移动web)的项目,其中需要用到滚动的功能(html的滚动效果不好,且在低版本上不支持).后面上网找了下资料,发现大部分人都在用iscroll4(下面简称v4),下载下来试了下确 ...

  10. 第二章 函数和window对象

    1.什么是函数函数相当于Java中的方法,每一个函数可以做一件事情,但是不属于某一个类 2.使用函数的好处:使代码模块化,功能分工明确,方便调用,思路功能清晰 3.函数的分类:(1)系统函数:系统提前 ...