当我浏览代码时,我发现了一件有趣的事情,如果我们在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
的值。