- 本书赞誉
- 前言
- 目标读者
- 不适合阅读本书的读者
- 本书结构
- 什么是数据处理
- 遇到困难怎么办
- 排版约定
- 使用代码示例
- 致谢
- 第 1 章 Python 简介
- 第 2 章 Python 基础
- 第 3 章 供机器读取的数据
- 第 4 章 处理 Excel 文件
- 第 5 章 处理 PDF 文件 以及用 Python 解决问题
- 第 6 章 数据获取与存储
- 第 7 章 数据清洗:研究、匹配与格式化
- 第 8 章 数据清洗:标准化和脚本化
- 第 9 章 数据探索和分析
- 第 10 章 展示数据
- 第 11 章 网页抓取:获取并存储网络数据
- 第 12 章 高级网页抓取:屏幕抓取器与爬虫
- 第 13 章 应用编程接口
- 第 14 章 自动化和规模化
- 第 15 章 结论
- 附录 A 编程语言对比
- 附录 B 初学者的 Python 学习资源
- 附录 C 学习命令行
- 附录 D 高级 Python 设置
- 附录 E Python 陷阱
- 附录 F IPython 指南
- 附录 G 使用亚马逊网络服务
- 关于作者
- 关于封面
F.3 魔法函数
IPython 有大量所谓的魔法函数,能在探索和编程的时候帮助你。这里有一些非常重要的函数,特别是对于初级开发者来说。
为了看到你已经导入和活动的对象,可以输入 %whos 或 %who。让我们看一下它们的用法:
In [1]: foo = 1 + 4 In [2]: bar = [1, 2, 4, 6] In [3]: from datetime import datetime In [4]: baz = datetime.now() In [5]: %who bar baz datetime foo In [6]: %whos Variable Type Data/Info -------------------------------- bar list n=4 baz datetime 2015-09-13 11:53:29.282405 datetime type <type 'datetime.datetime'> foo int 5
在你忘记了变量名称或者想要通过一个简洁的列表看到在变量中存储的内容时,这非常有用。
另外一个有用的工具是快速查找与库、类或对象相关的文档的能力。如果你在方法、类、库或属性名称的最后输入一个 ?,IPython 会尝试获取所有相关的文档,内联地展示它。举个例子:
In [7]: datetime.today? Type: builtin_function_or_method String Form:<built-in method today of type object at 0x7f95674e0a00> Docstring: Current date or datetime: same as self.__class__.fromtimestamp(time.time()).
有大量与此类似的 IPython 扩展和函数,对开发极其有用,特别是随着你作为一名开发者不断成长,碰到更加复杂的问题时。表 F-1 列出了最为有用的几个工具,网络上还有一些非常棒的演讲稿和会议演讲(http://ipython.org/presentation.html)以及交互示例(http://nbviewer.jupyter.org/github/ipython/ipython/blob/master/examples/Index.ipynb),此外还有关于库的非常棒的文档(http://ipython.org/documentation.html)。
所有的 IPython 扩展必需在 IPython 会话的开始使用 %load_ext extension_name 加载。如果你想要安装额外的扩展,GitHub 上有一个非常棒的可用扩展及其使用方式的列表(https://github.com/ipython/ipython/wiki/Extensions-Index)。
表F-1:有用的IPython扩展与函数
命令 | 描述 | 目的 | 文档 |
%autoreload | 允许你只通过一次调用重新加载所有导入的脚本 | 在编辑器中修改脚本、在 IPython shell 中调试脚本,进行活跃开发的时候,非常有帮助 | http://ipython.org/ipython-doc/dev/config/extensions/autoreload.html |
%store | 允许你存储保存的变量,在下一个会话中使用 | 在需要保存一些经常使用的变量,或者你的工作被中断因而需要保存当前的工作供以后使用时,非常有帮助 | http://ipython.org/ipython-doc/dev/config/extensions/storemagic.html |
%history | 打印你的会话历史 | 展示你已经运行过的命令的输出 | https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-history |
%pdb | 用于过程较长的调用的交互式调试模块 | 强有力的调试库,在导入了较长的脚本或模块时特别有用 | https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-pdb |
%pylab | 引入 numpy 和 matplotlib 来与你的会话交互式工作 | 允许你在 IPython shell 中使用统计和图表工具 | https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-pylab |
%save | 保存你的会话历史到一个输出文件 | 如果你花费了很长的时间调试,这是一个开始编写脚本的好方式 | https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-save |
%timeit | 计算代码中一行代码或多行代码的执行时间 | 用于对 Python 脚本和函数进行性能调优 | https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-timeit |
还有很多可用的魔法命令(https://ipython.org/ipython-doc/dev/interactive/magics.html)。它们的有用性取决于你在开发中使用 IPython 的方式,但是随着你作为一名开发者不断成长,使用它们会通过 IPython 为你简化其他的任务。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论