当前位置: 首页 > 面试题库 >

ipython和python之间的输出差异

俞俊逸
2023-03-14
问题内容

据我了解,python将repr输出输出,但显然并非总是如此。例如:

在ipython中:

In [1]: type([])
Out[1]: list

In [2]: set([3,1,2])
Out[2]: {1, 2, 3}

在python中:

>>> type([])
<type 'list'>
>>> set([3,1,2])
set([1, 2, 3])

ipython对输出应用什么转换?


问题答案:

IPython使用代替方法repr或标准pprint模块IPython.lib.pretty.RepresentationPrinter.pretty来打印输出。

模块IPython.lib.pretty提供了RepresentationPrinter.pretty在后台使用的两个功能。

IPython.lib.pretty.pretty 函数返回对象的字符串表示形式:

>>> from IPython.lib.pretty import pretty
>>> pretty(type([]))
'list'

IPython.lib.pretty.pprint 函数打印对象的表示形式:

>>> from IPython.lib.pretty import pprint
>>> pprint(type([]))
list

IPython使用其自己的漂亮打印机,因为标准Pythonpprint模块“不允许开发人员提供自己的漂亮打印回调”。



 类似资料:
  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。

  • 问题内容: 好的,所以我使用了很多输入命令,并且我了解在Python2中我可以做到: 但是现在我使用Python 3,我想知道两者之间有什么区别: 和: 我什么时候必须使用一个或另一个? 问题答案: 在Python 3.x中,成为,并删除了Python2.x 。因此,通过在3.x中执行此操作: 您基本上是在2.x中执行此操作: 在3.x中执行以下操作: 与在2.x中执行此操作相同: 以下是Pyth

  • 我编写了一个简单的脚本,它接受任意数量的参数来演示< code>$@和< code>$*之间的区别: 在我做的 CLI 上 这就是打印出来的 因为它们是相同的,这是否意味着等于?还是我遗漏了一点?

  • 问题内容: 我有一个名为jobrunner.py的脚本,该脚本在main.py中调用类方法。见下文… 进程_a和_b调用在OSX和Ubuntu上没有任何问题,但是当我尝试在Windows(相同版本的python和所有版本)上运行相同的东西时,它不能说索引超出范围。这使我相信在Windows平台上的模块之间未设置或传递“全局”变量BBOX。有没有其他人看到过这样的东西并且知道如何解决? 亚当 更新:

  • 问题内容: package main 该代码可以很好地工作。但是,如果按如下所示更改方法,则会导致死循环。区别在于将替换为。为什么? 问题答案: 因为程序包检查要打印的值是否具有方法(或换句话说:是否实现接口),如果是,则将调用它以获取值的表示形式。 软件包doc中对此进行了说明: […]如果操作数实现String()字符串方法,则将调用该方法将对象转换为字符串,然后根据动词的要求对其进行格式化(

  • 我正在通过做微控制器项目来自学C++。我当前的项目是使用一对或Adafruit羽毛分组无线电。无线电数据包的库函数需要一个C样式的字符串(我相信),我理解它是一个char的数组。 我已经设置了一个枚举来反映接收方的各种操作,并希望将该状态发送回发送方。所以我想把枚举变成char的数组。 在搜索将枚举转换为char数组的方法时,最简单的方法(对我来说)是将枚举变量传递给带有switch语句的函数,该