Jupyter实验室:为什么单行变量不生成输出?

时间:2019-03-06 18:39:23

标签: python python-3.x jupyter jupyter-lab

我遵循有关Jupyter和Python的教程,其中指出如果以下两个连续命令:

in: x = 2
in: x

我应该得到

out: 2
结果是

。但是,组合块中单行上的x如:

in: x = 2
in: if x == 2:
       x

不打印x变量。单行上的x与单行命令x有所不同吗?当我写这篇文章时,我看到一行与整个命令不同,但是使前两个命令结果为2但后三个命令什么都不是的基本概念或事物是什么?

2 个答案:

答案 0 :(得分:1)

当您在一行中编写一个变量并执行该变量时,jupyter Notebook假定您想知道该变量的值并将其隐式转换为print(variable),以便打印该变量的值。

当您使用多条语句时,您很少会希望打印语句中使用的所有变量。因此在这种情况下无法实现

答案 1 :(得分:1)

这与expression和python中的语句(请参见下面的链接)之间的区别有关。

一个表达式只能包含identifiersliteralsoperators

语句可能要复杂得多。参见simple statementscompound statements

python shell将输出表达式的求值,但不会带有语句,因为不能保证它求值可以输出的值。您应该使用print从语句中输出值。

考虑如果将x替换为其值(2)会发生什么情况:

if 2 == 2:
    2

您希望解释器输出2吗?