Python利用IPython提高开发效率


Posted in Python onAugust 10, 2016

一、IPython 简介

IPython 是一个交互式的 Python 解释器,而且它更加高效。

它和大多传统工作模式(编辑 -> 编译 -> 运行)不同的是, 它采用的工作模式是:执行 -> 探索 ,而大部分和数据分析相关的代

码都含有探索式操作(比如试误法和迭代法),所以 IPython 能大大提高编码效率。

IPython 发展到现在,它不仅仅只是一个加强版的 Python shell 了, 它集成了 GUI 控制台,这可以让你直接进行绘图操作;它还有一个基于 Web 的交互式笔记本和一个轻量级的快速并行的计算引擎。

二、编写代码

在 Terminal 中输入 ipython 既可启动 IPython。
如果需要使用 Matplotlib 库,则需要在启动的时候标记集成 Matplotlib 包,则启动命令改为:ipython --pylab

1. 学会使用 Tab 键

在输入代码的时候,如果这是一个前面已经输入过的内容(比如前面定义的变量),则只需要在 输入了前几个字母之后摁下 Tab 键即可自动补全。
IPython 拥有这个功能是对标准的 Python shell 的主要改进,这在其他语言的 IDE 中已经非常常见。

不仅能自动补全变量、对象等,像在 Terminal 中敲入命令一样 Tab 键还可以自动完成文件路径。

2. 上下箭头键,快速输入历史命令

当某条命令或代码需要反复输入的时候,不必每次都手动敲一遍,只需要使用上箭头键既可自动补全上一条命令;此时再继续摁上箭头键是上上条命令。

如果某个命令需要摁很多次上箭头键才能找到,此时只需要输入那条命令的前几个字母然后再摁上箭头键,即可只筛选符合前几个字母的命令。

3. 执行一个 .py 文件

如果想要执行一个外部的 .py 文件,使用 %run 命令,例如:

Python利用IPython提高开发效率

4. 查看相关代码的通用信息

当你需要查看一个变量或对象相关的通用信息的时候,在此变量后添加一个问号然后摁回车键即可。例如:

Python利用IPython提高开发效率

如果某个函数的包含 docstring,则在函数名后添加一个问号(?)也可以查看相关的 docstring 内容;
如果在函数名后添加两个问号(??),则可以显示该函数相关的源代码,例如:

Python利用IPython提高开发效率

5. 编码过程中相关的快捷键

     Ctrl+F 光标前移1个字符

     Ctrl+B 光标后移1个字符

     Ctrl+A 光标移至行首

     Ctrl+E 光标移至行尾

     Ctrl+U 删除此行光标之前的所有内容

     Ctrl+K 删除此行光标之后的所有内容

     Ctrl+L 清屏(Mac 下 Cmd+K 也可以)

三、调试代码

1. 代码发生异常后启动调试器

在代码发生异常后,输入 %debug 命令会启动调试器并自动跳转到“事发地点”:

Python利用IPython提高开发效率

输入 q 命令退出调试器。

2. 单步执行

使用带 -d 选项的 %run 命令可以预先打开调试器,输入 s 单步进入函数调用,输入 n 命令执行到下一行代码,输入叹号(!)紧接着输入变量名可查看变量的值。例如:

Python利用IPython提高开发效率

这条命令如果再添加一个指定行号的选项(-b)即可在启动调试器时设置一个断点,例如:

Python利用IPython提高开发效率

总结

以上就是Python利用IPython提高开发效率的全部内容,希望本文对大家学习使用python有所帮助。

Python 相关文章推荐
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
Pycharm远程调试openstack的方法
Nov 21 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
Python3 max()函数基础用法
Feb 19 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
解决Django中多条件查询的问题
Jul 18 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
Python networkx包的实现
Feb 14 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
Python collections.deque双边队列原理详解
Oct 05 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 #Python
浅析python中的分片与截断序列
Aug 09 #Python
总结python爬虫抓站的实用技巧
Aug 09 #Python
教你用Type Hint提高Python程序开发效率
Aug 08 #Python
Python如何实现文本转语音
Aug 08 #Python
Python脚本处理空格的方法
Aug 08 #Python
基于Python实现对PDF文件的OCR识别
Aug 05 #Python
You might like
php 禁止页面缓存输出
2009/01/07 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
Js动态创建div
2008/09/25 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
js图片轮播手动切换效果
2015/11/10 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
深入讲解Python中的迭代器和生成器
2015/10/26 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
结婚堵门保证书
2015/05/08 职场文书
单位工作证明范本
2015/06/15 职场文书
nginx 配置缓存
2022/05/11 Servers