Python:ipython简介及与原生python shell比价

ipython是一个强大的Python解释器,相比原生解释器,它提供了历史记录保存、tab补全、对象信息快速获取、执行shell命令、快捷键系统和魔术命令等优势。内省功能如object?和object??显示对象信息和源代码。常用的魔术命令包括%run、%timeit、%who等,%automagic允许无%使用魔术命令。此外,ipython还能通过!cmd命令在交互环境和cmd之间切换,极大地提升了Python开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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自动重载等功能;

二、ipython的内省

ipython相较于原生的python,提供了更加强大的内省功能,所谓内省,也称之为内视,即 object introspection,主要有以下一些常见的方法:
object? 或者?object :显示该对象的一些通用信息,注意python里面一切皆对象哦,包括函数、类。
object?? 或者??object:两个问号显示详细信息,如果是类或者是函数,还会显示源代码。即将问号放在前面和后面都可以。
通配符*匹配:如numpy.load? 这会显示所有的包含有load的函数,numpy.*sort? 这会显示所有以sort结尾的函数

三、ipython快捷键

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

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

四、魔术命令——magic command

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

%quickref :可以显示ipython的快速参考
%magic :可以查看到底有哪些模式命令(这个方法会显示每一个命令的详细信息,因此会很多)
%lsmagic :这里只会显示模式命令的名字,会比较简洁,查看起来更方便

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

默认情况下,魔术命令总是以百分号%开头,但这不是必须的,我们也可以不使用百分号,我们也可以直接使用不带百分号的魔术命令,这称之为“自动魔术命令——automagic”如:magic 这会得到和 %magic一样的效果,但是需要注意的是,不使用百分号时,不能出现和魔术命令同名称的变量,否则显示的就是变量了。那到底是使用百分号还是不使用百分号呢?事实上,我们也是可以自由控制的,通过%automagic来控制,

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

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

  1. %run——运行一个Python脚本
  2. %paste或者是%cpaste——执行剪切板中的代码
  3. %timeit 和%time 检测任意Python语句的执行时间
  4. %who和%who_ls和%whos——查看当前interactive环境中的变量
  5. %hist——查看历史命令
  6. 删除ipython环境中的变量
  7. 其他常用魔术命令
    8、ipython开发环境与cmd之间的互相切换:
    在ipython交互情况下,直接输入命令 !cmd 即可进入cmd模式;在cmd模式下直接输入 ipython 可以再次回到 ipython模式

小结

https://blog.51cto.com/u_4296776/5614233

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Freedom3568

技术域不存在英雄主义,不进则退

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值