【问题标题】:Concerns about python notebook关于python notebook的担忧
【发布时间】:2018-12-19 16:24:16
【问题描述】:

我对@9​​87654321@ 的工作有些担心。

然后当我 print() 某事时,一切似乎都正确(或熟悉),但是当我只是返回某事而不是 print()ing 时,则在输出之前有 Out[x]。如截图所示。

所以,我想知道这两者有何不同?

Out[x] 语句是否以某种方式用于调试或什么?

【问题讨论】:

  • 我从来没有使用过笔记本,但这可能只是为了让您知道由于退回而打印了什么,以及由于print 而打印了什么。
  • @Carcigenicate,也许是可能的,但我认为情况应该颠倒过来。我的意思是,当我们使用print 时,它应该显示Out[x]。我觉得这样会更真实。你不这么认为吗?
  • 它可能允许您通过数字引用以前返回的数据。 Haskell 的 REPL 允许这个 iirc。尝试引用打印的字符串没有多大意义。我认为“out”应该被解释为“data out”(不打印出来),就像“In”似乎表示“数据/代码输入到 REPL”一样。我同意,尽管“出局”可能是模棱两可的。
  • 是的,完全正确。我不这么认为!谢谢芽
  • 如果您在 Google 上搜索“Jupyter 介绍教程”这个短语,您会发现可以比我们在此处的答案中更好地解释它的资源。

标签: python jupyter-notebook python jupyter-notebook


【解决方案1】:

我刚刚在Carcigenicatecomment的帮助下弄明白了。

所有之前返回的数据都可以在以后的命令/输入中引用,这就是为什么它们都用数字编号。

稍后引用打印的数据是多余的,但如果我们可以稍后引用返回的数据,这将很有用。

这可以通过两种方式完成(据我所知

First:最后一个返回值可以通过_变量获取,如下:

In [1]: 'Hello Everyone' # This returns a string
Out[1]: 'Hello Everyone'

In [2]: print('Last returned value is ' + _)
# Ouput -> Last returned value is Hello Everyone

第二:我们可以显式提及数字来获取指定的返回值,像这样:

In [3]: 4 + 6
Out[3]: 10
In [4]: 6 + 4
Out[4]: 10
In [5]: print(Out[3] + Out[4])
# Output -> 20

请记住,如果提到的Out[] 没有任何返回值,那么这将引发KeyError

这里,return不代表打印。如果任何值为print()ed 则不视为返回。

我们也可以通过In[x]提及我们编写的代码,这将以字符串的形式返回该代码,如下所示:

In [6]: print('This was my first code: ' + In[1])
# Output -> This was my first code: Hello Everyone
In [7]: In[4]
Out[7]: '6 + 4'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2012-04-30
    • 2012-12-25
    • 1970-01-01
    相关资源
    最近更新 更多