ipython简要入门

简介

ipython是一个增强的Python交互解释器,它提供了一下功能:

  • 动态对象自身:使用或者??获取对象的文档注释,函数的原型定义,源代码等等。
  • 支持使用通配符*进行模块搜索
  • 支持代码自动补全
  • 支持历史命令
  • 其他魔法命令

安装

pip install ipython

常用命令

下面四个命令在ipython中最为常用

命令

描述

介绍ipython的常用特性

%quickref

快速引用

help

python自带的帮助命令

object?

object的详细信息,使用object??获取进一步信息

tab自动补全

在获取对象属性时,tab自动补全非常的有用,只需要输入object_name.<TAB>就可以获取对象的属性。

对象自省

输入object_name?将会输出对象所有的详细信息,包括文档注释,函数定义以及类的构造函数。如果需要获取特定的信息,可以使用魔法命令%pdoc, %pdef, %psource 以及%pfile

魔法函数

IPython内置了一些魔法函数,它分为两种:

  • 基于行的行魔法函数,以%开头,它使用当前行的剩余部分作为参数,参数不需要使用括号括起来。
  • 基于单元格的单元格魔法函数, 以%%开头,使用当前行剩余部分以及后面的行作为参数。

下面是魔法函数%timeit的示例:

In [13]: %timeit range(1000)
100000 loops, best of 3: 8.63 µs per loop

In [14]: %%timeit x = range(1000)
    ...: max(x)
    ...:
10000 loops, best of 3: 22.8 µs per loop

内置的魔法函数包括如下几种:

  • 作用于代码的函数:%run%edit%save%macro%recall
  • 作用于shell的函数:%colors%xmode%autoindent%automagic等。
  • 其它函数,比如:%reset%timeit%%writefile%load%paste等。

如果当前命令只有一行,行魔法函数也可以省略%,但是单元格模范函数不能省略%%

使用%magic获取获取IPython中魔法函数的详细介绍,如果需要获取某个魔法函数的详细信息,可以使用%somemagic?命令,此外,还可以使用%lsmagic获取所有的魔法函数。

运行与编辑

使用%run命令来运行任意python脚本,使用%edit编辑Python脚本。

调试代码

在异常出现之后,可以调用%debug进入pdb模式,然后进行调试。

历史

IPython保存了输入的历史命令和输出结果,使用up键和down键可以轻松的访问历史命令。

历史命令保存在In变量中,历史输出保存在Out中,最后三天历史输出分别保存在,,和__中。

使用%history可以列出历史命令。

调用系统shell命令

可以在ipython中调用任何系统shell命令,只需要添加前缀!即可。例如:

!ping www.baidu.com

启动脚本

可以将脚本放在profile_default/startup/目录中,之后每次启动ipython都会自动执行这些脚本。

绘图

在jupyter notebook中执行%matplotlib inline之后,就可以在Out输出中展示matplotlib绘制的图片了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

父类委托机制详解(全盘负责委托机制 )

    例如:用eclipse的打包工具将TestClassLoader输出成jre/lib/ext目录下的itcast.jar包,再在eclipse中运行这个...

30310
来自专栏小樱的经验随笔

exit(0)与exit(1),return三者区别(详解)

exit(0):正常运行程序并退出程序; exit(1):非正常运行导致退出程序; return():返回函数,若在主函数中,则会退出函数并返回一值。 详细...

31990
来自专栏与神兽党一起成长

封装一个FTP工具类

前人的代码中把FTP操作和业务逻辑实现耦合在一起,据说经过多次的修改,在性能表现方面已经非常靠谱。 在原来的代码中可以看到使用了commons-net进行FTP...

35940
来自专栏栗霖积跬步之旅

java多线程编程核心技术——第三章总结

第一节等待/通知机制 1.1不使用等待/通知机制实现线程间的通讯 1.2什么是等待/通知机制 1.3等待/通知机制的实现 1.4方法wait()锁释放与noti...

232100
来自专栏黄Java的地盘

旧项目TypeScript改造问题与解决方案记

由于本次改造的项目为一个通过NPM进行发布的基础服务包,因此本次采用TypeScript进行改造的目标是移除Babel全家桶,减小包体积,同时增加强类型约束从而...

85210
来自专栏北京马哥教育

Ansible 详细用法说明(二)

例:获取某台主机的变量 ansible 10.1.6.68 -m setup ===================================== sc...

39750
来自专栏bboysoul

linux下如何编译带有math.h头文件的程序

环境是centos7 大概意思是没有定义sqrt函数 百度要自己去指定头文件去编译命令如下: gcc [文件名] -lm 参数解释 -l 指定程序链接...

10230
来自专栏nummy

Tornado入门(六)【模板和UI】

Tornado也可以使用其他任意的模板引擎, 尽管并没有明确规则如何在RequestHandler.render整合进这些引擎。实际上只需要将模板渲染成字符串,...

12110
来自专栏开源优测

接口测试 | urllib篇 19 urllib基本示例

概述 本章就要就urllib中parse、request模块的重点API进行说明,也是以后大家最常用到的API。 本文不会列举所有的API。 本文以实例方式演示...

30090
来自专栏javathings

Java 线程同步方式 wait/notify(两个线程交替执行的例子)

线程同步,就是线程之间互相协调,通过等待,唤醒等操作,避免线程之间同时操作同一个资源。简单的说就是线程之间互相协作,避免干扰了其他线程的工作。

1.2K30

扫码关注云+社区

领取腾讯云代金券