ipython支持变量自动补全、自动收缩_50个关于IPython的使用技巧,get起来!

什么是IPython?可能很多人已经在用,却不知道它到底是什么。根据维基百科的解释:IPython是一种基于Python的交互式解释器,提供了强大的编辑和交互功能。

IPython拥有:满足你各种需求的交互式shell

火爆数据科学社区的Jupyter内核(供Jupyter Notebook使用)

对交互式数据可视化和GUI工具的完美支持

简单易用的高性能并行计算工具

adb5479bd03ea137ba2b550e0b1b3c76.png

IPython中的‘I’即代表交互的意思,所以IPython提供了丰富的工具,能更好地与python进行交互。

大家经常遇到的魔法命令,就是IPython的众多功能之一。

本文梳理IPython的50个用法,供Python爱好者参考。注:前面说过IPython提供了jupyter内核,所以Jupyter Notebook是一个基于浏览器的IPython shell,支持IPython的所有功能,以下内容均在Jupyter Notebook环境中测试。

1. ?打印IPython简介

在IPython中直接输入?,可以打印出IPython的功能介绍

d3477908590d0770e6ef183332fa2e05.png

2. object ?内省功能

在变量后面加上?,可以打印出该变量的详细信息。例如图中一个列表对象,打印出该对象的类型、长度等信息。

630862cec1cdc5ac116f3310ee8e9f1d.png

3. object ??内省功能

??和?功能相似,不过??还可以查看函数或模块对象的源代码。

6ef2ad7e57af414210a74788e8894e21.png

4. history历史命令

在IPython中,执行history或hist命令能够查看历史输入。

da33f0609555104ac210300ebc208073.png

5. tab自动补全

IPython支持tab键自动补全。

98cb7cf90bc1dd4a17ee964f0e9d6759.gif

6. ! shell_command执行shell命令

shell (windows里叫作cmd)表示使用文本与计算机进行交互的方式,在IPython中,shell命令前加上感叹号!(英文输入法)就可以直接执行。如图使用ping检测百度网址。

44105b083792c406f3d27fb279605a14.png

7.魔法命令%和%%区别

魔法命令分为两种,一种是line magics,另外一种cell magics。Line magic是通过在前面加%,表示magic只在本行有效。Cell magic是通过在前面加%%,表示magic在整个cell单元有效。

8. %run运行脚本

在IPython会话环境中,py文件可以通过%run命令当做Python程序来运行,输入%run 路径+文件名称即可。如图,e盘中有一py脚本test.py,在IPython中执行。

eeb8e9e7ef6f04cdc452eaac969a1116.png

d9dd2dc9cfdce72bc658ffa4f07532bc.png

9.%timeit测量代码运行时间

IPython使用魔法命令%timeit来测量单行代码的运行时间。

312d2d62d6369342bc476e1e5074056d.png

10.%%timeit测量代码运行时间

%%timeit用来测量整个单元格代码的运行时间.

0e7f64ee283ba591668eea924eff66e8.png

11. %pwd显示工作路径

该魔法命令用来显示当前工作目录的路径。

831c5e8cfd460bf9086f7a94b6a6fb7f.png

12. %matplotlib inline显示图像

在notebook中绘制图像时,使用%matplotlib inline命令可以将图表直接嵌入到notebook中,方便查看。

f7e0c6400d0ebd2ea7c3bbd1a7615d09.png

13. %conda安装第三方库

%conda install pkgs命令用于在IPython中安装python第三方库。

6da41c1dbd17f25ae507ac63b4e5164b.png

14. %pylab交互式计算

%pylab 魔法命令可以使numpy和matplotlib中的科学计算功能生效,这些功能被称为基于向量和矩阵的高效操作,交互可视化特性。它能够让我们在控制台进行交互式计算和动态绘图。

219f3cf9a3585057ddd87a07e7ddbed6.png

15. %quickref查看参考

%quickref用来查看IPython的特定语法和魔法命令参考。

7bb9b5d6253df44bd0f5fe9c98cc81a0.png

16. %ls显示目录内容

%ls path命令可以用来显示特定目录下的内容。

8709f0b7f9adeb9b9fe5d6a570d38d64.png

17. 通配符*

使用通配符*?可以模糊查询方法名及属性。

b85fd5a9b6adbe49714507f716fdb75e.png

18. %cd修改目录

%cd命令可以修改当前工作目录。

19. _打印前输出结果

使用一个下划线 _ 获取前一个输出结果,它是个变量,实时更新的。使用两个下划线 __可以获取倒数第二个输出,使用三个下划线 ___ 获取倒数第三个输出(没有输出的命令行不计入在内,只支持前三个输出结果)。

83fae9fd2f9445dfb5fb733ab0c56538.png

5f70e441b36cb76625970c437931dd2b.png

20. ;抑制输出

在语句后面加上;,不显示输出结果。

b661035cf5c231e03114a3cb3d1a9643.png

21. %debug交互式调试器

%debug命令支持从最新的异常跟踪的底部进入交互式调试器。在ipdb调试模式下能访问所有的本地变量和整个栈回溯。使用u和d向上和向下访问栈,使用q退出调试器。在调试器中输入?可以查看所有的可用命令列表。

05c8848e1cb872c978d5f74c8353604a.png

22. %pdb交互式调试器

%pdb同样用于启动交互式调试器,不过支持对所有的异常进行调试。你需要事先启动%pdb命令,之后对每一个异常都会进行调试。

196ecd6d1c505d17ebc56b186dd22383.png

23. %run -d交互式调试器

%run -d用于对脚本进行调试。

148a1e6a82be4455631fe4504f09ee79.png

e219552433f62623002ad451829ac781.png

24. %pycat语法高亮

%pycat filename用语法高亮显示一个python文件(不用加.py后缀名)。

f71941fb11e3ce336614bc28e267ba60.png

92081579f13865e5f33c548744d33140.png

25. %load加载代码

%load命令用于将脚本代码加载到当前cell。

9fea39198786a610b68512327f1746c5.png

defbd11bb31d3be56729a850f22fdce7.png

26. %macro定义宏

%macro taskname n1 n2...用来定义宏,并给宏命名,执行指定的代码行。执行name就是执行n1 n2...这些代码。

1960797f4d83bdcc6eb097e2a7963682.png

27. %notebook导出notebook

%notebook path用于导出当前notebook内容到指定ipynb文件中。

27cd7ea7cbac77c24297cad41cc21c4a.png

28. %pdef打印构造信息

%pdef命令用来打印类、函数的构造信息。

0ba7c5be371b1e672aee5a35c0066b4a.png

29. %pdoc打印文档

%pdoc命令用来打印对象的文档字符串。

93d2b2f1e71d5ea722c79e292b95ecb2.png

30. %precision浮点数精度

%precision命令用来设置浮点数精度,可添加具体参数,无参数则默认精度。

4c89fc35bfbe6bee89c5de15477d21b7.png

31. %xdel删除变量

%xdel命令用于删除变量,并尝试清楚其在IPython中的对象上的一切引用。

832bf70e8a1ded919d71158a1ac0ccc6.png

32. %who显示变量

%who命令用于显示当前所有变量,你也可以指定显示变量的类型。

c51bb15689aa3de4fe9d5ac655354f28.png

33. %who显示变量

%who命令同样用于显示当前变量,但提供的信息更加丰富。

3f39d98ef0ebe232c31961822d56c8d3.png

34. %save保存cell

%save path n1 n2..命令用于将指定cell代码保存到指定的py文件中。

cb708f164178f5227f42625de8bbda4f.png

9ea55cd018a5dd1f3382a13386176a3a.png

35. %reset重置

%reset -f命令用于删除定义的所有变量,如果不指定参数-f,则需要确认后再重置。

527fbd5f7e02d08964a3831b51718305.png

36. %rerun执行前代码

%rerun命令用于执行之前的代码,可以指定历史代码行,默认最后一行。

91bde9b9524f3206c1f3416343123de6.png

37. %%HTML渲染HTML

%%HTML命令用于将单元格渲染为HTML输出。

9e33f0f7d5c767dbf83a514b9fb34004.png

38. %%javascript运行JavaScript

%%javascript命令用于运行含有JavaScript代码的cell。

592876bd87cd3fd72acc13555efdcf61.png

39. %%latex渲染LaTeX

%%latex命令用于将LaTeX语句渲染为公式,LaTeX是一种基于ΤΕΧ的排版系统。

ce37026ba07013de2f75214bd3469069.png

40. %%markdown渲染markdown

%%markdown命令用于将markdown文本渲染为可视化输出。

520d44f6b4d4464580bd40f8ec205dae.png

41. %%writefile写入文件

%%writefile命令用于将单元格内容写入到指定文件中,文件格式可为txt、py等。

6a5876b3a2d7c9292629a5c0155044aa.png

d90fd6d74d49c1715eaa789b55896a2c.png

42. %bookmark保存书签

%bookmark命令能够保存常用目录的别名,以便实现快速跳转,书签能够持久化保存。

bca540f6342cee783d5b58cf9c5fd1f5.png

43. %paste粘贴代码块

当你使用 IPython 解释器时,有件事经常让你头疼,那就是粘贴多行代码块可能会导致不可预料的错误,尤其是其中包含缩进和解释符号时。

使用%paste命令能够直接执行剪切板中的python代码块。

c0f4614462d89d59fe7078586fc993a9.png

44. %magic获取魔法命令列表

%magic用于获取所有魔法命令及其用法。

0e3f25fdafc9e9deb8703546cc68adf1.png

45. In和Out

常会看到IPython 中的In[1]:/Out[1]:形式的提示,它们并不仅仅是好看的装饰形式,还是包含输入、输出的变量。

In 对象是一个列表,按照顺序记录所有的命令。

Out 对象不是一个列表,而是一个字典,它将输入数字映射到相应的输出(如果有的话)

794af2fd53607c8bec275ec58e9eef07.png

46. %xmode控制异常

%xmode命令用于控制异常输出的模式。

5c5160a04a3760b150397bba548174dd.png

47. jupyter qtconsole

jupyter qtconsole 是ipython团队基于qt框架开发的一个GUI控制台。

它具有富文本编辑功能,既能够在里面实现内嵌图片、多行编辑、语法高亮等。

22c91d93236ea3dba826801cc7b506f2.png

48. IPython导航快捷键快捷键动作Ctrl + a将光标移到本行的开始处

Ctrl + e将光标移到本行的结尾处

Ctrl + b(或左箭头键)将光标回退一个字符

Ctrl + f(或右箭头键)将光标前进一个字符

49. IPython文本输入快捷键快捷键动作Backspace 键删除前一个字符

Ctrl + d删除后一个字符

Ctrl + k从光标开始剪切至行的末尾

Ctrl + u从行的开头剪切至光标

Ctrl + yyank(即粘贴)之前剪切的文本

Ctrl + ttranspose(即交换)前两个字符

50. IPython命令历史快捷键快捷键动作Ctrl + p(或向上箭头)获取前一个历史命令

Ctrl + n(或向下箭头)获取后一个历史命令

Ctrl + r对历史命令的反向搜索

### 回答1: 这是一个代码错误,表示没有定义名称为"get_ipython"的变量。它通常是在使用 Jupyter Notebook 时出现的,因为 get_ipython 是 Jupyter Notebook 特有的特性。要解决此问题,请在不使用 Jupyter Notebook 的情况下重新运行代码。 ### 回答2: 这个错误信息通常出现在使用Jupyter Notebook等交互式编辑器时,因为此时get_ipython()被称为一个魔法函数,而当代码在Python解释器中执行时,这个魔法函数并不存在。 通常这个错误出现的原因是代码中存在对get_ipython()函数的调用,而并没有正确的导入这个函数,导致Python解释器无法识别它。 解决方法是不要在普通的Python代码中使用get_ipython(),或者在导入get_ipython()的时候使用try...except语句来避免抛出NameError异常。 具体来说,可以使用下面的代码: ``` try: from IPython import get_ipython except ImportError: def get_ipython(): return None ``` 这样一来,如果代码在交互式环境下运行时就可以正常使用get_ipython()了,如果在Python解释器中运行时则会返回None。 ### 回答3: Python是一种非常流行的编程语言,它被广泛应用于各种场景中,例如数据处理、机器学习、网站开发等等。Python中提供了很多预定义的函数和模块,可以方便地实现各种功能。 然而,有时候在编写Python代码时,我们可能会遇到各种各样的错误,例如NameError。NameError是指Python解释器无法找到变量或函数的名称,通常是因为该名称没有被定义或拼写错误。 在具体到题目中的NameError:name 'get_ipython' is not defined,它的含义是Python解释器无法找到名为“get_ipython”的变量或函数。在Jupyter Notebook等交互式环境中,get_ipython是一个特殊函数,可以用来获取当前环境下的IPython解释器。因此,如果在一个非交互式环境中调用get_ipython函数,就会引发NameError这种错误。 对于这种错误,我们可以检查代码中是否有变量或函数名称拼写错误的问题,或者确认当前代码运行环境的配置是否正确。另外,我们也应该注意代码在不同环境中的可移植性,以免出现类似的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值