Python

IPython介绍

2019-09-28  本文已影响0人  奉先

0. 前言

本篇文章主要介绍IPython工具。
首先,需要介绍下Python和IPython的关系。如果将 Python 看作数据科学任务的引擎,那么 IPython 就是一个交互式控制面板。
文章内容主要来源于书籍和日常使用经验积累。

1. shell 和 notebook

使用 IPython 的方式有两种,分别是IPython shell 和 IPython Notebook。

1.1. 启动方法

在命令行中输入 ipython,启动 IPython 解释器。

$ ipython
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 13:10:39) 
Type "copyright", "credits" or "license" for more information.

IPython 5.8.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 

在命令行输入jupyter notebook ,默认浏览器将会自动打开,并且自动导航到localhost 网址,启动notebook,jupyter界面如下图所示:


jupyter notebook

2. 查看帮助文档

python中的模块数量是海量的,同时,在使用模块中的函数前,也需要阅读docstring对其用法有个基本了解。本小节介绍查看这些帮助的方法。
符号 ? 用于浏览文档,符号 ?? 用于浏览源代码,而 Tab 键可以用于自动补全。

?放置于模块或者方法后方,其作用类似于help(),展示说明字符串(docstring):



注意jupyter的 len?命令的帮助文档在底部。


?? 双问号可以获得python的源代码,但是这里注意使用??查看的模块或者方法必须是用python实现的,如果使用C实现是看不了源码的。
TAB键类似于Linux,做提示用的,例如下边的random.ra[TAB] 给出的列表。



上边介绍的TAB键,解决了后缀匹配的问题。假如我们脑海中有一个要使用的函数,但是只记得尾部,这时希望ipython可以提醒我们,可以使用如下的办法完成。 使用星号* 和问号? 共同完成此问题,如下是实例。

3.快捷键

涉及到熟练操作的记忆,可以参考下边文章:
Mac jupyter notebook的快捷键:https://www.jianshu.com/p/20f6a77dd23c

4.魔法命令

IPython 在普通 Python 语法基础之上的增强功能。这些功能被称作 IPython 魔法命令,并且都以 % 符号作为前缀。分为行魔法单元魔法
行魔法以单个 % 字符作为前缀,作用于单行输入;单元魔法以两个 %% 作
为前缀,作用于多行输入。

  1. %paste和%cpaste
    允许直接拷贝代码并执行。
  2. %run
    可以执行外部代码
%run hello.py

运行该语句后,脚本中出现的函数,也可以在IPython会话中使用。

  1. %timeit
    该项可以自动计算接下来一行的Python 语句的执行时间。这个功能在性能优化时,有较大作用。
    同样地,也可以在魔法命令后加问号,来查看该命令的帮助文档。
%timeit l = [n**2 for n in range(10000)]
%timeit?
  1. %magic和%lsmagic
    这两项可以列出我们环境中可以使用的所有魔法命令。
  2. %history
    输出所有输入的历史命令。

5.输入和输出历史 和 shell

5.1 查看历史命令

在IPython会话中,可以看到In和Out (输入是In,输出是Out)。IPython 实际上创建了叫作 In 和 Out 的 Python 变量。In 对象是一个列表,例如In[1] 可以表示第一条命令。Out 对象不是一个列表,而是一个字典。这是因为并不是每一个输入都有输出,Out的访问不能是连续,只有有输出的序号,才能访问该Out。
访问历史第38条的输出,可以有以下两种写法:

print Out[38]
print _38

5.2 禁止输出

如果想关闭某条语句的输出内容,直接在该语句后加分号即可,例如下边语句将不再输出任何内容:

import math
math.sin(2);

5.3 系统命令

在感叹号后边的语句,是执行的系统语句,例如!ls 将在操作系统层面执行ls命令。同时,也支持将系统命令的执行结果赋予一个python变量,如下边例子生成了一个list:

files = !ls
files
上一篇下一篇

猜你喜欢

热点阅读