Module-IPython使用手册

Linux-IPython使用手册

IPython是python的一个交互式shell,它比默认的“python shell”更方便,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多强大的功能和函数。

IPython 是基于BSD 开源的,并且IPython为交互式计算提供了一个丰富的架构。

IPython特色

  • 强大的交互式shell
  • 供Jupyter notebooks使用的Jupyter内核
  • 交互式的数据可视化工具
  • 灵活、可嵌入的解释器
  • 易于使用,高性能的并行计算工具

IPython使用技巧

IPython中 %调用IPython命令

Tab键自动补全

在shell中输入表达式时,按下Tab键可将当前命名空间中任何与已输入的字符串相匹配的变量(对象、函数等)显示出来

中断正在执行的代码

当代码正在执行时,需要终止代码运行,则只需按下“Ctrl+C”,就会引发一个KeyboardInterrupt,除一些特殊的情况以外,绝大部分Python程序会立即停止执行。
键盘中的快捷键
使用IPython编码时还可使用键盘快捷键来快速完成所需操作,常用的键盘快捷键(IPython环境下)如下表所示。

内置命令-记录 (%logstart)

记录输入的命令

In [2]: %logstart
Activating auto-logging. Current session state plus future input saved.
Filename       : ipython_log.py
Mode           : rotate
Output logging : False
Raw input log  : False
Timestamping   : False
State          : active

内置命令-执行系统命令 (!)

In [6]: !hostname
neo4j.yinsho.com

内置命令-内省 (?)

当某对象的信息不是很明确时,可以在变量的前面或后面加上问号(?),有关该对象的一些通用信息就会显示出来,如下图所示。

# 查看变量或函数
In [4]: ?a
Type:        int
String form: 1
Docstring:  
int(x=0) -> int or long
int(x, base=10) -> int or long


# 打印函数的源码
In [15]: func??            
Signature: func()
Source:   
def func():
    print("hello world")
File:      /<ipython-input-13-4475a92670e6>
Type:      function

    

内置命令-执行文件代码 (%run)

In [29]: !vi test.py

In [30]: !cat test.py
def func1():
    print("hello world")

func1()

In [31]: %run "test.py"
hello world

目录书签系统 (%bookmark)

目录书签,类似于快捷方式

# 定义 local 书签
In [37]: %bookmark local /usr/local
# 查看所有书签
In [38]: %bookmark -l
Current bookmarks:
local -> /usr/local
# 使用书签.
In [39]: cd local
(bookmark:local) -> /usr/local
/usr/local
# 覆盖之前书签
In [41]: %bookmark local /etc/sysconfig

其他命令

  • %paste和%cpaste命令执行剪帖板代码
  • 使用上箭头或下箭头可以查看上一条命令或下一条命令的历史
  • _i48 执行第48条命令
  • __ 执行前面倒数第一条命令
  • 输入与输出主要是使用 _、_X、_iX,这里的X表示行号
  • %dhist :打印目录访问的历史
  • %env :以dict的形式返回系统的环境变量

Ipython高级使用

日志处理、代码调试、性能分析、自定义主题

IPython附件

快捷键

快捷键 作用
Ctrl+P或向上箭头 后向搜索命令
Ctrl+N或向下箭头 前向搜索命令
Ctrl+R 按行读取反向历史搜索(部分匹配)
Ctrl+Shift+V 从剪切板粘贴文本
Ctrl+A 将光标移动到行首
Ctrl+E 将光标移动到行尾
Ctrl+K 删除从光标开始至行尾的文本
Ctrl+U 清除从光标开始至行首的文本
Ctrl+F 将光标向前移动一个字符
Ctrl+B 将光标向后移动一个字符
Ctrl+L 清屏

魔术命令

%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_id,%whos          显示interactive命名空间中定义的变量,信息级别/冗余度可变
%xdel variable              删除variable,并尝试清除其在ipython中的对象上的一切引用

调试器命令 (%debug)

debug调试器样例

In [11]: %debug  
> <ipython-input-10-0ee88489e9f0>(1)<module>()
----> 1 func%debug
ipdb> 

设置断点单步调度 
%run -d script.py

s 进入脚本 , 
b 13 # 在13行设置断点 
c # continue till touch the break point 
n # 执行下一行。 
如果有exception 报出:throws_an_exception , 
ipdb> s # 单步进入 exception 那行. 
ipdb> !a #在变量a 前加 ! 查看 变量内容

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,
主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令

pdb 调试器命令列表

h(help)                 显示命令列表
help command            显示command的文档
c(continue)             恢复程序的执行
q(quit)                 退出调试器,不再执行任何代码
b(break) n              在当前文件的第n行设置一个断点
b path/to/file.py:n     在指定文件的第n行设置一个断点
s(step)                 单步进入函数调用
n(next)                 执行当前行,并前进到当前级别的下一行
u(up)/d(down)           在函数调用栈中向上或向下移动
a(args)                 显示当前函数的参数
debug statement         在新的递归调试器中调用语句statement
l(list) statement       显示当前行,以及当前栈级别上的上下文参考代码
w(where)                打印当前位置的完整栈跟踪(包括上下文参考代码)

资源

IPython用法详解: https://www.cnblogs.com/renpingsheng/p/7759797.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容