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使用内置json模块解析json格式数据的方法
Jul 20 Python
Python中一行和多行import模块问题
Apr 01 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
Jul 26 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
大数据分析用java还是Python
Jul 06 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
Python headers请求头如何实现快速添加
Nov 03 Python
Python jiaba库的使用详解
Nov 23 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
Angular中的$watch方法详解
2017/09/18 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
vuex存储token示例
2019/11/11 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
装配出错检讨书
2014/09/23 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android