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和JavaScript间代码转换的4个工具
Feb 22 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
Python秒算24点实现及原理详解
Jul 29 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
Jan 25 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
python中turtle库的简单使用教程
Nov 11 Python
python字符串拼接+和join的区别详解
Dec 03 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+js iframe实现上传头像界面无跳转
2014/04/29 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Flask之flask-script模块使用
2018/07/26 Python
Python的argparse库使用详解
2018/10/09 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
Java语言程序设计测试题选择题部分
2014/04/03 面试题
心理学专业毕业生推荐信范文
2013/11/21 职场文书
跟单文员岗位职责
2014/01/03 职场文书
竞聘书格式及范文
2014/03/31 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
教师教育教学随笔
2015/08/15 职场文书