史上最详细、最完全的ipython使用教程,Python使用者必备!——ipython系列之一

article/2025/9/24 1:02:08

一、ipython简介

关于什么是ipython,本文就不加以介绍了,他是一个非常流行的python解释器,相比于原生的python解释器,有太多优点和长处,因此几乎是python开发人员的必知必会。

1、ipython相比于原生的python有什么优势

(1) python shell不能在退出保存历史;ipython历史记录自动保存:保存在history.sqlite文件下:可用“_”、“__”、“___”调用最近三次记录;

(2) python shell不支持tab自动补全;ipython支持tab补全;

(3) python shell不能快速获取类、函数信息;ipython通过“?”显示对象签名、文档字符串、代码位置,通过“??”显示源代码;(4) python shell不能直接执行shell命令,需要借助sys;ipython通过“!”调用系统命令,如“!uptime”;

(5) 其他ipython有很多magic函数,可通过使用%lsmagic枚举;

     %run:运行python文件

     %edit:使用编辑器打开当前函数编辑

     %save:把某些历史记录保存到文件

     %debug:激活debug程序

     等等,后面会讲到

(6)ipython有很多快捷键

(7)ipython的扩展宏系统、storemagic持久化宏、变量、别名;以及autoreload自动重载等功能;

下面挑选几个典型的加以说明:

(1)Python对象在ipython环境下排版得更好,格式化更加美观。比如对于一个字典类型data。

>>> import numpy as np
>>> data={i:np.random.randn() for i in range(8)}
>>> data
{0: 0.5745972896627615, 1: 0.888451102340561, 2: -2.2941687621316924, 3: 0.01790118639622907, 4: 0.3600199138099036, 5: 0.6118078188322031, 6: 0.5261552735725278, 7: -0.20874867962524404}

这是原生python下显示的结果,很不美观, 因为当字典很长的时候,很难看。

data={i:np.random.randn() for i in range(8)}In [13]: data
Out[13]:
{0: -0.24691306010199965,1: 1.0770180986231184,2: 0.9459463985248865,3: 0.7618376828038825,4: 1.6075756654719342,5: -0.04417798701828061,6: -1.062961626712148,7: -0.7381927912455305}

这是ipython下的输出格式,可以看见,字典排列的很美观,非常易于查看。

(2)提供更强大的交互体验

我们都知道,在python原生开发条件下,单下划线“_”表示的是最近的一个输出结果,但是ipython则在此基础之上做出了更强大的功能。因为原生Python编辑器不仅丑,而且是没有行号的,但是ipython提供了行号,这不仅更好看,而且有很多妙用哦,如下:

_ :表示最近的一个输出结果;

__ :表示最近的两个输出结果;

_行号 :查看指定行的那个变量的结果

_i行号:查看指定行号输入的变量名称

示例如下:

In [1]: a=100In [2]: a
Out[2]: 100In [3]: b=200In [4]: b
Out[4]: 200In [5]: _
Out[5]: 200In [6]: __
Out[6]: 200

注意:这里一定要输出a、b,也就是说,如果上面没有第二行和第四行,那是不行的,像下面这样

a=100

_

这时会报错的,因为_和__针对的是最近一个和最近两个输出了的,没有输出就不行了。

In [9]: _4
Out[9]: 200In [10]: _i3
Out[10]: 'b=200'In [11]: _i4
Out[11]: 'b'

注意:

(a)_4 表示的是查看第四行输出的变量,但是这里如果改为_3 就不行了,因为第三行之定义了b=200,并没有输出,所以

_行号 只能够用在输出的行号上面。

  (b) 但是  _i行号,不管是用在输出还是输入上面都是没有问题的。

如何判断是输出还是输入?前面是In的表示输入,是Out表示输出。

二、ipython的内省

ipython相较于原生的python,提供了更加强大的内省功能,所谓内省,也称之为内视,即 object introspection,主要有以下一些常见的方法:

object? 或者?object :显示该对象的一些通用信息,注意python里面一切皆对象哦,包括函数、类。

object?? 或者??object:两个问号显示详细信息,如果是类或者是函数,还会显示源代码。即将问号放在前面和后面都可以。

通配符*匹配:如

numpy.*load*? 这会显示所有的包含有load的函数

numpy.*sort? 这会显示所有以sort结尾的函数

三、ipython快捷键

下面介绍一下第一个和第二个快捷键,比如有如下代码:

  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   清屏
In [16]: a=100In [17]: a
Out[17]: 100In [18]: abc=100In [19]: abcd=1000In [20]: a=100In [21]: a

当输入a之后,然后按Ctrl+P,或者是按向上的方向键,则会依次显示已a开头的变量,依次是a、abcd、abc、a,不仅如此,很久之前在ipython里面输入过的变量,只要是以a开头的,都能够显示,知道最开始的那个以a开头的位置,如果是Ctrl+N或者是向下的方向键,则正好相反。

四、魔术命令——magic command

什么是ipython的魔法命令?

所谓的模式命令,是指那些给我们提供方便,轻松控制ipython交互系统的命令,可以这样去理解,魔术命令可以看成是ipython交互环境下面的命令行程序,其中很多还有一些命令行参数选项。

%quickref  :可以显示ipython的快速参考

%magic  :可以查看到底有哪些模式命令(这个方法会显示每一个命令的详细信息,因此会很多)

%lsmagic :这里只会显示模式命令的名字,会比较简洁,查看起来更方便

%命令? 或者是%命令??:当我们想要查看某一命令的详细信息,我们可以使用同前面类似的方法,在魔术命令后面添加一个或者是两个问号??来查看详细信息。

默认情况下,魔术命令总是以百分号%开头,但这不是必须的,我们也可以不使用百分号,我们也可以直接使用不带百分号的魔术命令,这称之为“自动魔术命令——automagic”如:

magic 这会得到和 %magic一样的效果,但是需要注意的是,不使用百分号时,不能出现和魔术命令同名称的变量,否则显示的就是变量了。那到底是使用百分号还是不使用百分号呢?事实上,我们也是可以自由控制的,通过%automagic来控制,

默认情况下,它是开启的,即我们可以使用无%的魔术命令,只要与变量名不冲突即可,我么也可以关闭,如下:

%automagic -off 0Automagic is OFF, % prefix IS needed for line magics.

此时,再次输入magic命令时,显示:

magic
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\Desktop\test.py in <module>()
----> 1 magicNameError: name 'magic' is not defined

 显示magic是不存在的,因为已经关闭了。此时必须使用%开头

如何控制它的开还是关闭呢?

 %automagic - on, 1   #此时打开

 %automagic - off, 0   #此时关闭

下面介绍一些常见的魔术命令。

1、%run——运行一个Python脚本

即在ipython中我不仅可以运行代码,我还可以运行一个已知的python脚本文件,就像是在命令行中的使用是一样的,比如有一个以下的Python文件:

def addfunc(a,b,c):return a+b-ca=100
b=200
c=150
result=addfunc(a,b,c)

现在我们在ipython里面输入如下代码:

In [21]: %run C:\Users\XinAir\Desktop\test.pyIn [22]: a
Out[22]: 100In [23]: b
Out[23]: 200In [24]: c
Out[24]: 150In [25]: result
Out[25]: 150

我们发现,脚本文件里面的变量,我们依然可以使用,一般格式如下:

%run C:\Users\XinAir\Desktop\test.py 命令行参数(如果有命令的话)

这个和cmd模式之下的

python C:\Users\XinAir\Desktop\test.py 命令行参数(如果有命令的话) 两者是不是异曲同工。

不仅如此,我不仅能够直接使用脚本文件里面的代码,脚本文件也可以使用ipython环境中的变量,如下:

In [26]: %run C:\Users\XinAir\Desktop\test.pyIn [27]: x=1000In [28]: y=2000In [29]: z=1500In [30]: result=addfunc(x,y,z)In [31]: result
Out[31]: 1500

我们发现,不仅可以直接使用脚本文件中的变量、函数,还可以给脚本文件使用ipython本身的变量,除此之外,我还可以使用下面语句:

%run -i C:\Users\XinAir\Desktop\test.py    这个地方的-i是可选参数,可以要,也可不要代表的就是interactive(交互)的意思。

2、%paste或者是%cpaste——执行剪切板中的代码

很多人可能觉得之好像没什么用,实际上,它的用处非常大,我们在编写代码的时候,我们希望执行某一小段代码进行相关的测试,但是我们又不想专门再建立一个py文件,所以我们可以将代码复制或者是剪切一下,这个时候代码进入了剪切板,然后打开ipython,此时我们有三种处理办法

第一:直接使用Ctrl+V进行粘贴,然后测试代码

第二:输入魔术命令%paste,回车,这个时候在剪切板中的代码自动粘贴了进来,不再需要手动Ctrl+V了

第三:输入魔术命令%cpaste,回车,然后再手动Ctrl+V,将代码复制进来,注意最后一定要按两个减号“--”退出才行哦,实际上它给了提示的。如下

%cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:x=5
:y=7
:if x>5:
:    x+=1
:
:    y=8
:--In [54]: y
Out[54]: 7In [55]: x
Out[55]: 5

3、%timeit 和%time 检测任意Python语句的执行时间

a=numpy.random.randn(100,100)In [65]: %timeit numpy.dot(a,a)
70.8 µs ± 1.74 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

注意,执行的语句要和%timeit放在同一行,%timeit python语句

%time指一次执行代码的总体时间

%tinmeit指多次执行代码的平均时间,使用这个命令是因为每次执行同一个代码的时间是不一样的,所以通过多次执行代码求出的平均时间更能说明代码的总体执行时间

4、%who和%who_ls和%whos——查看当前interactive环境中的变量

他们都可以查看当前的ipython环境中有哪些变量,但有所区别

%who :依次显示出每一个变量的名称

%who_ls:以列表的形式返回

%whos:显示出每一个变量的详细信息

In [5]: %who
a        b       cIn [6]: %who_ls
Out[6]: ['a', 'b', 'c']In [7]: %whos
Variable   Type    Data/Info
----------------------------
a          int     100
b          int     200
c          int     300

5、%hist——查看历史命令

In [11]: %hist
magic
a=100
b=200
c=300
%who
%who_Is
%who_is
%who_ls
%whos
%hist

6、删除ipython环境中的变量

%xdel variable 删除单个变量的引用

%reset指删除interactive命名空间中全部的变量名

7、其他常用魔术命令

%debug 从最新的异常跟踪的底部进入交互式调试器

%pdb 在异常发生后自动进入调试器

%page OBJECT 通过分页器打印输出object

%prun statement 通过cprofile执行statement,并打印分析器的输出结果

当然,魔术命令有很多,没有完全列举出,可以自己查看,后面的博文中也还会接触到。

 

8、ipython开发环境与cmd之间的互相切换

在ipython交互情况下,直接输入命令 !cmd 即可进入cmd模式

在cmd模式下直接输入 ipython 可以再次回到 ipython模式

后面会继续深入讲解ipython的高级用法,请关注!

 


http://chatgpt.dhexx.cn/article/osdbMsLa.shtml

相关文章

《IPython简介》

IPython是公认的现代科学计算中最重要的Python工具之一。它是一个加强版的Python交互式命令行工具&#xff0c;与系统自带的Python交互环境相比&#xff0c;IPython具有以下明显的几个特点&#xff1a; 与Shell紧密关联&#xff0c;可以在IPython环境下直接执行Shell指令&#…

ipython的介绍

1. IPython介绍 ipython是一个python的交互式shell&#xff0c;比默认的python shell好用得多&#xff0c;支持变量自动补全&#xff0c;自动缩进&#xff0c;支持bash shell命令&#xff0c;内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用pytho…

Python——使用ipython

1、打开命令行窗口&#xff0c;运行pip install ipython&#xff0c;安装ipython&#xff0c;如果安装了anaconda&#xff0c;就不需要安装ipython 了&#xff0c;因为anaconda自带ipython&#xff1b; 2、运行ipython&#xff0c;进入ipython窗口&#xff1b; 3、命令前加叹号…

IPython介绍及使用

IPython介绍及使用 一、Ipython入门 IPython是一个交互式python命令行。 &#xff08;1&#xff09;安装IPython $ pip3 install ipython&#xff08;2&#xff09;ipython的使用 In代表输入&#xff0c;响应的结果则显示在Out中。与python解释器的使用方法一致。 In [1]: 12 …

XMind 8免费激活方法

步骤1&#xff1a; 下载安装XMind 8 . 百度网盘下载&#xff1a;https://pan.baidu.com/s/1aviJDpCgaQGI1XgiOdaOAw 密码&#xff1a;3ysh 步骤2(可选)&#xff1a; 安装好Xmind后右击Xmind图标-->打开文件位置-->进入安装目录&#xff0c;将XMindCrack.jar文件&#xf…

[Xmind]关于Xmind的使用方法

首先是Xmind使用的问题 这个方法我也是找了挺久才找到的&#xff0c;供个人借鉴和使用&#xff0c;但不能用于商业用途&#xff01; 本人的电脑系统是&#xff1a;Microsoft Windows 10 家庭中文版 下载链接 蓝奏云下载连接密码:ag89 密码&#xff1a;20210804 下载三个文件后…

脑图XMind 8免费激活方法

步骤1&#xff1a; 下载安装XMind 8 . 百度网盘下载&#xff1a;https://pan.baidu.com/s/1CKu1VPtos-GbC_hBSe-fYQ 密码&#xff1a;5zu7 步骤2(可选)&#xff1a; 安装好Xmind后右击Xmind图标-->打开文件位置-->进入安装目录&#xff0c;将XMindCrack.jar文件&#xf…

XMind8安装

一&#xff1a;介绍 XMind 是一款非常实用的商业思维导图软件&#xff0c;应用全球最先进的Eclipse RCP 软件架构&#xff0c;全力打造易用、高效的可视化思维软件&#xff0c;强调软件的可扩展、跨平台、稳定性和性能&#xff0c;致力于使用先进的软件技术帮助用户真正意义上提…

Xmind破解教程

Xmind是什么&#xff1f; XMind 是什么&#xff1f; XMind是风靡全球的思维导图和头脑风暴软件。XMind 专注于做思维导图十二年&#xff0c;现全球上百个国家的百万级用户都将之作为学习、工作、生活的效率工具。 第二个问题&#xff1a;思维导图是什么&#xff1f; 思维导…

Linux中xmind8 pro 破解(内附序列号,亲测有效)

xmind下载安装就不讲解了&#xff0c;这里说说如何升级到 xmind 8 pro, 只需要简单的里俩步&#xff1a; 第一步骤&#xff1a;下载XMindCrark.jar文件 百度链接:https://pan.baidu.com/s/1HUxV0zHRHrdfxff0Gu7acQ 提取码:62fx 下载之后&#xff0c;将XmindCrack.jar放在安装好…

xmind linux,xmind 8 pro序列号-XMind 8(思维导图软件) for Linux下载v8.0-乐游网软件下载...

《XMind 8》forLinux打造的系统导图思维类软件&#xff0c;提供一体化的可视化思考空间&#xff0c;帮助企业人员进行获取更多的新想法&#xff0c;捕捉新元素&#xff0c;导入导出自己的思路&#xff0c;用于团队协助的工作中&#xff0c;提高企业人员的整体效率。 软件介绍 X…

验证失败,可能为XMind 2013 Pro序列号。XMind 8 pro 激活教程

前言附1&#xff1a;XMind.ini 参考附2&#xff1a;XMind激活破解参考后记 前言 在XMind激活时&#xff0c;提示&#xff1a;验证失败&#xff0c;可能为XMind 2013 Pro序列号。升级到XMind 8&#xff1f; 该如何处理呢&#xff1f;这种情况应该是您将-javaagent:./XMindCra…

关于xmind破解的方法

1.首先下载xmind并安装官网链接&#xff1a;https://www.xmind.cn/download/xmind8/ 2.下载分享的文件包&#xff08;里面有xmind的安装包已经安装的小伙伴可以不用提取&#xff09; 链接: https://pan.baidu.com/s/1WJ1bARI4p6PR565NbHWFIg 提取码: 8xuj 3.找到hosts文件用…

xmind pro 功能

1.下载文件 提取码&#xff1a;4a8c 2.找到 XMind 安装目录。右击ximd打开文件所在位置。将下载的文件复制到这个目录中。 2.以文本格式打开安装目录中 XMind.ini 3.在 XMind.ini 最后追加一个XMindCrack.jar的绝对路径、保存。 例如: -javaagent:D:\XMind\XMindCrack.jar…

xmind 7 pro破解补丁|xmind 7 pro注册机下载(附xmind7 pro序列号/注册码/激活码)

Xmind 7破解补丁是一款绿色免费、并专门针对Xmind 7软件而推出的一款破解补丁软件&#xff0c;鉴于此&#xff0c;小编为大家推荐这款Xmind 7破解补丁&#xff0c;相信有了这款Xmind 7破解补丁&#xff0c;用户就可以非常轻松的生成相应的软件Xmind 7序列号及注册码&#xff0c…

验证失败,可能为XMind 2013 Pro序列号。升级到XMind 8?解决方法

解决方案 发现自己的配置文件中书写错误&#xff0c;多写了两个英文符号。

XMind 8 Update 9 安装出现一些问题

经过无数次的失败&#xff0c;总结出一些激活失败的原因 1、序列号或者邮箱地址无效 邮箱随便填 序列号&#xff1a; XAka34A2rVRYJ4XBIU35UZMUEEF64CMMIYZCK2FZZUQNODEKUHGJLFMSLIQMQUCUBXRENLK6NZL37JXP4PZXQFILMQ2RG5R7G4QNDO3PSOEUBOCDRYSSXZGRARV6MGA33TN2AMUBHEL4FXM…

验证失败,可能为XMind 2013 Pro序列号。升级到XMind 8?

近期在学习一本书&#xff0c;想为了更好的梳理书中的内容逻辑&#xff0c;使用XMind进行内容逐层细化&#xff0c;因为我很觊觎XMind的导出为Word的功能&#xff0c;便去官网下载了XMind8 &#xff0c;但是如果不升级到pro版本是无法使用导出功能的&#xff0c;因为穷&#xf…

XMind 8 Pro

一、下载安装Xmind软件 下载安装包&#xff1a;https://www.xmind.net/download/安装XMind 二、下载破解补丁(XMindCrack.jar) 下载地址&#xff1a;https://www.lanzous.com/i29qtij 三、破解XMind 右键桌面XMind图标&#xff0c;选择打开文件所在的位置 把下载好的破解包…

xmind 8 pro Mac破解版(思维导图) 附xmind 8 序列号

链接:https://pan.baidu.com/s/1tTKYuqCjGo_WC2ns6tN54w 密码:1b1w 【转载地址】 小伙伴们XMind 8 pro Mac破解版(思维导图) 最新版本v3.7.8中文破解版上线了&#xff0c;本次的XMind 8 Mac破解版进入一个全新的阶段&#xff0c;更新鲜的外观和更好的可用性。 本次XMind 8 M…