print(<variable_name>) 和 <variable_name> python shell 之间的区别?



当我浏览代码时,我发现了一件有趣的事情,如果我们在python shell中初始化一个变量,并打印该变量,我们就会得到值,如果我们使用type the variable并按enter键,我们会得到相同的值。我想不出背后的原因??有人能帮忙吗。。。。

>a = 5
>print(a)
>5
>a
5

print将在shell中工作,并在脚本中工作,而为变量命名只是shell的语法糖。

Python控制台是一个读取-评估-打印循环(REPL(。它首先读取您的输入,对其求值,打印任何输出,然后重复,直到您退出。这是一种非常常见的与语言交互的方式,并且存在于许多语言中。

你观察到的另一个例子是

>>> 1+2
3

在这里,控制台评估1+2并打印返回的结果。尝试使用任何函数或表达式。

print()按预期工作,因为在对其进行评估时,它在返回None之前进行自己的打印,就像任何其他函数在返回控制台之前进行所有自己的代码一样。你可以试试这个,例如

>>> type(print('test'))
test
<class 'NoneType'>

在这里,控制台评估print('test'),这导致第一次手动打印,然后自动打印type调用的返回,生成第二行。

为了回答您的问题,>>> print(a)>>> a之间的区别在于,在第一种情况下,控制台对打印进行评估,并且没有返回值可打印;在第二种情况中,控制台对表达式进行评估并打印结果,即a的值。

最新更新