iPython_iPython

iPython_iPython本文编写时,IPython最新的版本为6.3和5.4。介绍IPython是Fernando在2001开始开发的一个交互式的Python解释执行环境。众所周知,Python提供了一个交互执

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文编写时,IPython最新的版本为6.3和5.4。

介绍

IPython 是 Fernando 在 2001 开始开发的一个交互式的Python解释执行环境。众所周知,Python提供了一个交互执行的环境,在命令行输入python或者python3就可以进入Python的命令行环境,但在实际工作中并不方便,IPython则提供了一个更为强大的环境,主要包括以下几方面内容:

  • 一个强大的交互式Shell环境
  • Jupyter内核
  • 支持交互式的数据可视化
  • 灵活,可被嵌入到单独的工程中
  • 使用简单,并行计算的高效工具

本文依次介绍这几个方面,方便大家熟悉IPython环境。

Mac 下的安装

安装非常简单,我的Python版本时3.6,所以用了 pip3,如果需要jupyter notebook或者Qt支持,也需要同步安装jupyter。Python数据分析这本书中推荐使用EDM这是一个集成环境,可能对软件依赖管理的比较好,其实自己安装也没什么问题。

pip3 install ipython
pip3 install jupyter

# 如果需要交互式的可视化终端,还需要安装pytq5
pip3 install pyqt5

交互式Shell环境

命令行输入IPython就可以进入ipython的环境,输入前面包含In和行号,输出包含Out和行号。

iPython_iPython

与操作系统交互

IPython和操作系统结合的非常紧密,可以直接在命令行中执行操作系统的命令。

Tab补齐与提示

在IPython的界面中,按Tab键可以做很多工作,如果执行Shell命令,tab可以补齐文件名,如果是Python代码,可以补齐变量名,用.之后,可以提示对象包含的属性和方法。

iPython_iPython

记录命令历史

IPython在本地磁盘维护了一个小型的数据库来记录用户输入的历史以及输出的日志,并且提供了几个快捷键,方便大家快速查找历史命令。还可以用%hist来查看输入的历史记录。

快捷键 功能描述
Ctrl + P 向上搜索历史,等同于向上箭头
Ctrl + N 向下搜索历史,等同于向下箭头
Ctrl + R 增量搜索历史记录,这个命令玩过Linux的同学应该比较熟悉

输入和输出变量

IPython环境对用户的输入和输出都会记录。输入变量保存在_iX格式的变量中,X表示行号。如果我们想查看第2行的输入内容,可以使用_i2。

目录书签系统

IPython提供了一个简单的目录书签系统,可以方便我们快速切换目录。书签会被自动初始化,这样可以在不同会话间保留。

In [1]: %bookmark -l
Current bookmarks:
baby -> /Users/rousseau/Projects/python.my/pydata-book/datasets/babynames

In [2]: %bookmark moviedb /Users/rousseau/Projects/python.my/pydata-book/datasets/movielens

In [3]: %bookmark -l
Current bookmarks:
baby    -> /Users/rousseau/Projects/python.my/pydata-book/datasets/babynames
moviedb -> /Users/rousseau/Projects/python.my/pydata-book/datasets/movielens

对象内省 Comprehensive object introspection

使用 ? 可以查看对象的一些信息。

使用 ?? 可以查看对象的源码(如果可能)

魔术命令

IPython中提供了一些以%开头的特殊命令,我们称这些命令为魔术命令 Magic Command。魔术命令可以认为是IPython系统中的命令行程序,使用?可以查看选项。魔术命令也可以不带百分号直接使用,只要没有定义与其同名的变量就可以,这个技术叫做 automagic ,可以通过 %automagic 打开或关闭。可以在IPython中查看相关文档,输入%magic即可。

常用的魔术命令

命令 命令解释
%quickref 现实IPython的快速参考
%magic 显示所有magic命令的详细文档
%debug 从最新的异常跟踪的底部进入交互式调试器
%hist 打印命令输入的历史
%timeit 测试脚本的运行时间,多次执行以获得代码的平均执行时间
%automagic 控制automagic功能是否开启
%paste 执行剪贴板中的Python代码
%reset 删除interactive命名空间中的全部变量/名称
%run script.py 在IPython中执行一个Python脚本
%logstart 开始会话日志记录功能

%run 命令

在IPython环境中,所有文件都可以通过%run命令当作Python程序来运行。我理解就是把Python脚本放到一个新的命名空间中进行后台运行,通过IPython交互环境,可以调用现实Python程序中的变量。

执行剪贴板中的代码

对于一线代码片段,可以拷贝到IPython的环境中执行查看结果,但是对于有空行的代码,直接使用操作系统的复制粘贴快捷键会报错,这个时候需要使用%paste和%cpaste这两个魔术函数。%paste函数会将粘贴板中的代码粘贴到交互式命令行中。%cpaste函数执行后,进入一个交互环境,只有输入__或者Ctrl+D才结束代码的复制。

交互式数据可视化

IPython支持给予Qt框架的GUI控制台,如下图所示。如果需要交互环境,需要安装PyQt5。

iPython_iPython

IPython可以与matplotlib密切结合。

iPython_iPython

开发调试利器

%debug
%pdb

本文为作者原创,如果您觉得本文对您有帮助,请随意打赏,您的支持将鼓励我继续创作。

iPython_iPython

参考资料:
1、IPython
2、Jupyter
3、matplotlib

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167564.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jupyter的代码能用pycharm运行吗_pycharm怎么登录

    jupyter的代码能用pycharm运行吗_pycharm怎么登录准备阶段:Professional版的PyCharm激活PyCharm,按照这个教程走的,因为内网机无法上网,用的第3种激活方法确认服务器的tensorflow调用GPU跑tf程序没问题。准备好SSH的usernameandpassword准备好SSH的usernameandpassword配置pycharmref:使用PyCharm通过SSH连接远程GP…

    2022年10月28日
  • laravel 中使用tinker注入数据到数据库

    laravel 中使用tinker注入数据到数据库

    2021年10月24日
  • 数模(6):Leslie矩阵人口模型

    数模(6):Leslie矩阵人口模型上期中介绍了两种利用非线性函数拟合人口与物种增长趋势的方法。这两种方法都可以用于对人口与物种增长的总体趋势进行预测,但预测不够精细。我们知道在正常社会条件或自然条件下,生育率与死亡率是与群体的年龄构成息息相关的。我们需要对整个群体按年龄进行层次划分,构建与年龄相联系的人口模型。典型的例子就是Leslie矩阵模型。Leslie矩阵介绍我们把整个社会中的人群按年龄等距分成n组,每组中该年的人口总数…

    2022年5月14日
  • latex大的中括号_文献引用中括号怎么标注

    latex大的中括号_文献引用中括号怎么标注括号是数学中最常用的符号之一。括号不仅能使我们的公式更加美观,还能使我们的表达更为清晰、丰富。latex里面的括号和我们常见的括号是一样的,主要是小括号、中括号(或者叫方括号)和花括号。这里我们看到花括号如果直接打出来的话是不显示任何东西的,这里我们需要加一个转义符,也就是反斜杠。如果只用直接的括号字符,只能打出固定大小的括号,比如这样打出的括号就比较小。那么如何打出更大一点的括号呢?在latex…

    2022年10月10日
  • file_handle_windows句柄

    file_handle_windows句柄1.概述在实际工作中会经常遇到一些bug,有些就需要用到文件句柄,文件描述符等概念,比如报错:toomanyopenfiles,如果你对相关知识一无所知,那么debug起来将会异常痛苦。在linux操作系统中,文件句柄(包括Socket句柄)、打开文件、文件指针、文件描述符的概念比较绕,而且windows的文件句柄又与此有何关联和区别?这一系列的问题是我们不得不面对的。博主通过翻…

    2022年10月10日
  • java lang illegalargument_java true false

    java lang illegalargument_java true false我们的JSP项目在上传文件时通常都需要获取目录在服务器上的绝对路径,request.getRealPath()方法显示已经过时,但是还是有替代方法的。HttpSessionsession=request.getSession(true);//获取session//Stringpath=request.getRealPath(“/data/userfile/p_w_picpath”)…

    2022年9月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号