我遵循有关Jupyter和Python的教程,其中指出如果以下两个连续命令:
in: x = 2
in: x
我应该得到
out: 2
结果是。但是,组合块中单行上的x如:
in: x = 2
in: if x == 2:
x
不打印x变量。单行上的x与单行命令x有所不同吗?当我写这篇文章时,我看到一行与整个命令不同,但是使前两个命令结果为2但后三个命令什么都不是的基本概念或事物是什么?
答案 0 :(得分:1)
当您在一行中编写一个变量并执行该变量时,jupyter Notebook假定您想知道该变量的值并将其隐式转换为print(variable),以便打印该变量的值。
当您使用多条语句时,您很少会希望打印语句中使用的所有变量。因此在这种情况下无法实现
答案 1 :(得分:1)
这与expression和python中的语句(请参见下面的链接)之间的区别有关。
一个表达式只能包含identifiers,literals和operators。
语句可能要复杂得多。参见simple statements和compound statements
python shell将输出表达式的求值,但不会带有语句,因为不能保证它求值可以输出的值。您应该使用print
从语句中输出值。
考虑如果将x
替换为其值(2
)会发生什么情况:
if 2 == 2:
2
您希望解释器输出2
吗?