文章目录

  • 简介
  • Python解释器
  • IPython
    • 魔法函数
    • 运行和编辑
    • Debug
    • History
    • 运行系统命令

简介

今天给大家介绍一下Python的一个功能非常强大的解释器IPython。虽然Python本身自带解释器,但是相对而言IPython的功能更加的强大。

Python解释器

Python是自带解释器的,我们在命令行输入python即可进入python的解释器环境:

$> python
Python 2.7.15 (default, Oct  2 2018, 11:47:18)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> site = "www.flydean.com"
>>> site
'www.flydean.com'
>>>

python解释器的提示符是>>>

python提供了一个非常有用的命令help,我们可以使用help来查看要使用的命令。

>>> help
Type help() for interactive help, or help(object) for help about object.

在Python3中,还提供了tab的补全功能:

>>> site
'www.flydean.com'
>>> site.
site.capitalize(    site.expandtabs(    site.isalpha(       site.isprintable(   site.lower(         site.rindex(        site.splitlines(    site.upper(
site.casefold(      site.find(          site.isdecimal(     site.isspace(       site.lstrip(        site.rjust(         site.startswith(    site.zfill(
site.center(        site.format(        site.isdigit(       site.istitle(       site.maketrans(     site.rpartition(    site.strip(
site.count(         site.format_map(    site.isidentifier(  site.isupper(       site.partition(     site.rsplit(        site.swapcase(
site.encode(        site.index(         site.islower(       site.join(          site.replace(       site.rstrip(        site.title(
site.endswith(      site.isalnum(       site.isnumeric(     site.ljust(         site.rfind(         site.split(         site.translate(

使用起来非常的方便。

和Python自带的解释器之外,还有一个更加强大的解释器叫做IPython。我们一起来看看。

IPython

IPython是一个非常强大的解释器,通常它是和jupyter notebook一起使用的。在IPython3.X中,IPython和Jupyter是作为一个整体一起发布的。但是在IPython4.X之后,Jupyter已经作为一个单独的项目,从IPython中分离出来了。

使用IPython很简单,输入IPython命令即可:

$> ipython
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 12:04:33)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.In [1]: site= "www.flydean.com"In [2]: site
Out[2]: 'www.flydean.com'

IPython的提示符是In [1]:

基本上Python自带的命令在IPython中都是可以使用的。

IPython提供了4个非常有用的命令:

command description
? 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.

魔法函数

IPython中有两种魔法函数,一种是Line magics,一种是Cell magics

Line magics 接收本行的输入作为函数的输入,是以%开头的。而Cell magics可以接收多行的数据,直到你输入空白回车为止。是以%%开头的。

比如我们想要看一个timeit的魔法函数的用法,可以使用Object?来表示:

$> In [4]: %timeit?
Docstring:
Time execution of a Python statement or expressionUsage, in line mode:%timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o] statement
or in cell mode:%%timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o] setup_codecodecode...

timeit用来统计程序的执行时间,我们分别看下Line magics和Cell magics的使用:

In [4]: %timeit?In [5]: %timeit range(1000)
199 ns ± 3.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)In [6]: %%timeit range(1000)...: range(1000)...:
208 ns ± 12.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

事实上,如果只是LIne magics的话,我们可以省略前面的%,但是对于Cell magics来说,是不能省略的。

In [7]: timeit range(1000)200 ns ± 4.03 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

常见的魔法函数有下面几种:

  • 代码相关的: %run, %edit, %save, %macro, %recall, etc.
  • shell环境相关的: %colors, %xmode, %automagic, etc.
  • 其他的函数: %reset, %timeit, %%writefile, %load, or %paste.

运行和编辑

使用%run 可以方便的运行外部的python脚本。

In [8]: run?
Docstring:
Run the named file inside IPython as a program.Usage::%run [-n -i -e -G][( -t [-N<N>] | -d [-b<N>] | -p [profile options] )]( -m mod | file ) [args]

run有几个非常有用的参数,比如-t 可以用来统计程序的时间。-d可以进行调试环境,-p可以进行profiler分析。

使用%edit 可以编辑多行代码,在退出之后,IPython将会执行他们。

如果不想立即执行的话,可以加上-x参数。

Debug

可以使用%debug 或者 %pdb 来进入IPython的调试环境:

In [11]: debug
> /Users/flydean/.pyenv/versions/anaconda3-5.1.0/lib/python3.6/site-packages/IPython/core/compilerop.py(99)ast_parse()97         Arguments are exactly the same as ast.parse (in the standard library),98         and are passed to the built-in compile function."""
---> 99         return compile(source, filename, symbol, self.flags | PyCF_ONLY_AST, 1)100101     def reset_compiler_flags(self):ipdb>
In [12]: pdb
Automatic pdb calling has been turned ONIn [13]: pdb
Automatic pdb calling has been turned OFF

或者可以使用 %run -d theprogram.py 来调试一个外部程序。

History

IPython可以存储你的输入数据和程序的输出数据,IPython的一个非常重要的功能就是可以获取到历史的数据。

在交互环境中,一个简单的遍历历史输入命令的方式就是使用up- 和 down- 箭头。

更强大的是,IPython将所有的输入和输出都保存在In 和 Out这两个变量中,比如In[4]。

In [1]: site = "www.flydean.com"In [2]: site
Out[2]: 'www.flydean.com'In [3]: In
Out[3]: ['', 'site = "www.flydean.com"', 'site', 'In']

可以使用 _ih[n]来访问特定的input:

In [4]: _ih[2]
Out[4]: 'site'

_i, _ii, _iii 可以分别表示前一个,前前一个和前前前一个输入。

除此之外,全局变量 _i 也可以用来访问输入,也就是说:

_i<n> == _ih[<n>] == In[<n>]
_i14 == _ih[14] == In[14]

同样的,对于输出来说也存在着三种访问方式:

_<n> == _oh[<n>] == Out[<n>]
_12 == Out[12] == _oh[12]

最后的三个输出也可以通过 _, _____来获取。

还可以使用%history来列出之前的历史数据进行选择。

history可以和 %edit,%rerun,%recall,%macro,%save%pastebin 配和使用:

通过传入数字,可以选择历史的输入行号。

%pastebin 3 18-20

上面的例子会选择第3行和第18-20行输入。

运行系统命令

使用!可以直接运行系统命令:

In [27]: !pwd
/Users/flydean/Downloads

还可以用变量接收运行的结果,比如 : files = !ls

本文作者:flydean程序那些事

本文链接:http://www.flydean.com/python-ipython/

本文来源:flydean的博客

欢迎关注我的公众号:「程序那些事」最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

Python解释器和IPython相关推荐

  1. python各个解释器的用途-常用的五种Python解释器|老男孩网络Python学习课程

    Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释 ...

  2. python各个解释器的用途-Python解释器有哪些?Python解释器种类

    Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释 ...

  3. Python解释器有哪些?Python解释器种类

    Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释 ...

  4. python解释器有哪几种_Python解释器种类以及特点?

    python解释器是什么? 英语:Interpreter,又译为直译器,是一种电脑程序能够把高级编程语言一行一行直接转译运行.解释器不会一次把整个程序转译出来,只像一位"中间人", ...

  5. 基石为勤能补拙的迷宫之旅——第二天(编程语言介绍、Python解释器介绍与安装、执行Python程序的方式和变量)

    一. 编程语言介绍 1.1 机器语言 直接用计算机能理解的二进制指令编写程序,直接控制硬件 1.2 汇编语言 用英文标签取代二进制指令取编写程序,本质也是在直接控制硬件 1.3 高级语言 用人能理解的 ...

  6. 常用的五种Python解释器

    Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码, 以下是常用的五种Python解 ...

  7. python解释器的功能_python的解释器是什么?

    python解释器是解释python脚本执行的程序.编写python代码保存后,我们会得到一个以.py为扩展名的文本文件.要运行此文件,就需要python解释器去执行.py文件. python解释器种 ...

  8. python各个解释器的用途-【Python面试】 说说Python解释器种类以及特点?

    最近公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开 ...

  9. python解释器是什么-python的解释器是什么?

    python解释器是解释python脚本执行的程序,当开发者在编写python代码保存后,就会得到一个以".py"为扩展名的文本文件,若要运行此文件,就需要python解释器去执行 ...

最新文章

  1. 【Linux基础】查看硬件信息-内存和硬盘
  2. spring 通过编程来获取属性文件
  3. python 比赛成绩预测_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!值得,涨知识了!...
  4. 信息安全工程师笔记-网络攻击常见技术
  5. chrome浏览器导出书签 如何导入收藏夹
  6. Python+numpy实现矩阵的行列扩展
  7. Redhat6.5中搭建Postfix邮件系统
  8. python定义一个空的数组_用Python算算你要交多少个人所得税
  9. 插值拟合模型 之 Hermite插值、三次样条插值
  10. 永别了.武器------爱好和平人民的美好愿望(图)
  11. python列表左闭右开_python中的细节—左闭右开原则
  12. 测试地图长度和高度软件,‎App Store 上的“海拔测量仪-集指南针和GPS实时高度测距仪二合一”...
  13. 徐闻县珊瑚礁保护区可持续发展策略
  14. 英伟达RTX 4070 Ti显卡正式发布!你会买吗?
  15. JS逆向入门学习之回收商网,手机号码简易加密解析
  16. frp与nginx结合,实现内网设备的ssh,远程桌面和http访问
  17. outlook邮箱邮件内容乱码_邮件标题乱码问题解决一例
  18. [小说]魔王冢(2)意乱情迷
  19. Tip and Ring
  20. 公共钥匙盒(100分)

热门文章

  1. 天锋w2019_不知道为什么那么多人喜欢三星W2019,直到入手这款天锋W2019手机
  2. VC批量拷贝,移动,删除文件---SHFileOperation
  3. HiKey960 开发板 android 编译
  4. Python中is和==有什么区别?
  5. 分布式事务之底层原理揭秘
  6. OS- -内存之虚拟内存
  7. MySQL的基本查询(二)
  8. 打入硅谷的局外人|Decode the Week
  9. 从编解码、传输到基础架构 详解Bigo多媒体技术栈
  10. 在浏览器中分析AV1码流