专栏首页nummyIPython简要入门

IPython简要入门

IPython增强了python自带的Console的功能,下面的语法只在IPython中有效。

获取帮助

使用问号获取全局帮助信息。

In [1]: ?

在对象前面或者后面加上?来获取对象的相关帮助信息:

In [6]: object?
Docstring: The most base type
Type:      type

使用??可以获取对象的详细信息,甚至会直接打印源码信息:

In[1]: import collections
In[2]: collection.Counter??

Init signature: collections.Counter(*args, **kwds)
Source:
class Counter(dict):
    '''Dict subclass for counting hashable items.  Sometimes called a bag
    or multiset.  Elements are stored as dictionary keys and their counts
    are stored as dictionary values.

    >>> c = Counter('abcdeabcdabcaba')  # count elements from a string

    >>> c.most_common(3)                # three most common elements
    [('a', 5), ('b', 4), ('c', 3)]
    >>> sorted(c)                       # list all unique elements
    ['a', 'b', 'c', 'd', 'e']
    >>> ''.join(sorted(c.elements()))   # list elements with repetitions
    'aaaaabbbbcccdde'
    ...

还可以使用*进行模糊查询:

In [24]: *int*?
FloatingPointError
int
print

shell赋值

在交互过程中我们可能需要操作底层shell,IPython通过使用!来支持。 例如,显示当前路径

In[1]: !pwd
/User/home/

改变当前目录:

In[1]: !cd /var/etc

或者编辑文件:

In[1]: !vim myfile.txt

在IPython的命令行中还可以使用$variable或者{variable}的方式来引用变量,例如:

In[1]: file = 'myfile.txt'

In[2]: !mv $file {file.upper()}

shell命令也可以出现在!=右边,这种情况下命令的结果将赋值给左边的对象。

In[1]: my_files != ls

还可以组合使用:

my_files =! ls ~/
b = "backup file"
for i,file in enumerate(my_file):
    raw = !echo $backup $file
    !cp $file {file.split('.')[0]+'.bak'}

魔法函数

IPython还提供了一些特殊的魔法函数,它们的语法与shell类似,但是底层还是Python实现的。

魔法函数以%或者%%开始。

以单个%开始的魔法函数必须位于同一行。

In[1]: %xmode
Exception reporting mode: Verbose

并且支持赋值操作:

In [1]: results = %timeit -r1 -n1 -o list(range(1000))
1 loops, best of 1: 21.1 µs per loop

In [2]: results
Out[2]: <TimeitResult : 1 loops, best of 1: 21.1 µs per loop>

以两个%开始的魔法函数支持跨行,但是不支持赋值操作。

In[1]: %%bash
...  : echo "My shell is:" $SHELL
...  : echo "My disk usage is:"
...  : df -h
My shell is: /usr/local/bin/bash
My disk usage is:
Filesystem      Size   Used  Avail Capacity  iused   ifree %iused  Mounted on
/dev/disk1     233Gi  216Gi   16Gi    94% 56788108 4190706   93%   /
devfs          190Ki  190Ki    0Bi   100%      656       0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0       0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0       0  100%   /hom

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ElasticSearch入门

    Elasticsearch是一个实时分布式搜索和分析引擎。它用于全文搜索、结构化搜索、分析以及将这三者混合使用。

    用户2936342
  • 常用shell命令

    用户2936342
  • 使用 Livy Rest API 提交 spark 批量任务 (jar,Python, streaming)

    Livy是一个开源的REST 接口,用于与Spark进行交互,它同时支持提交执行代码段和完整的程序。

    用户2936342
  • python 文件处理、数据持久化与正则

      数据持久化最简单的类型就是普通文件,有时也叫做平面文件(flat file)。文件是计算机中由OS(操作系统)管理的具有名字的存储区域,在linux系统上,...

    py3study
  • C语言经典习题100例(九)41-45

    实现思路: 用static声明和未用static声明变量进行对比,即可得出static的作用。

    cutercorley
  • Python系统管理

    在Linux操作系统上编写shell脚本时, 主要涉及到执行系统命令, 目录和文件操作. 那么在python中怎么办呢, 这主要是几个模块的使用: os, os...

    py3study
  • 从零开始学Python-day3

        列表的概念:列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

    py3study
  • 4-Numpy通用函数

    计算这百万个操作并存储结果需要几秒钟!甚至现在的手机的处理速度都以Giga-FLOPS衡量时(即每秒数十亿次数字运算)。 不过事实证明,这里的瓶颈不是操操作系...

    用户1418372
  • python学习笔记之运算符

    目录 前言 软件环境 身份运算符 算术运算符 比较运算符 位移运算符 自变运算符 位运算符 逻辑运算符 成员关系运算符 Python真值表 最后 前言 在前面的...

    Angel_Kitty
  • Unity3d读取XML配置文件

    读取配置文件的代码如下 string path = Application.dataPath + @"/Resources/config.xml"; ...

    Pulsar-V

扫码关注云+社区

领取腾讯云代金券