pythonshell即使在没有";“打印”;命令

pythonshell即使在没有";“打印”;命令,python,python-3.x,Python,Python 3.x,我使用PythonIdle的编辑器编写了以下代码 import urllib.request print(urllib.request.urlopen('https://github.com').read().decode('utf-8')) 然后将代码保存为脚本。运行脚本后,pythonshell显示了我想要的页面源代码 当我将上述代码更改为: import urllib.request urllib.request.urlopen('https://github.com').read().

我使用PythonIdle的编辑器编写了以下代码

import urllib.request
print(urllib.request.urlopen('https://github.com').read().decode('utf-8'))
然后将代码保存为脚本。运行脚本后,pythonshell显示了我想要的页面源代码

当我将上述代码更改为:

import urllib.request
urllib.request.urlopen('https://github.com').read().decode('utf-8')
然后运行脚本,pythonshell没有显示任何内容。这是可以理解的

然而,对我来说奇怪的是,如果我在Python shell中以交互方式运行上述代码(没有打印的代码),Python shell仍然可以显示页面源代码,如您所见:

我不明白为什么


我使用的是Python 3.6.3。

您使用的是交互式Python提示符。它会自动为您打印返回值,以便您可以看到所做操作的结果

尝试键入
3+2
。你知道这也不会打印任何东西,但你会看到结果


同样,如果将这两行放入一个文件中,则不会得到任何输出。

您使用的是交互式python提示符。它会自动为您打印返回值,以便您可以看到所做操作的结果

尝试键入
3+2
。你知道这也不会打印任何东西,但你会看到结果


同样,如果将这两行放入一个文件中,则不会得到任何输出。

这是因为shell正在打印执行结果。如果将函数调用分配给变量,则它将禁止打印


i、 这是因为shell正在打印执行结果。如果将函数调用分配给变量,则它将禁止打印


i、 e.
html=urllib.request.urlopen(…)

交互式Python shell中任何返回值但未分配给变量的语句都会在控制台上打印其
repr
(表示形式)。如果将其分配给变量(即
contents=urllib….
),则不会转储任何输出。默认情况下,python shell将打印您运行的命令的结果。这正是shell所做的,作为交互式运行的特殊情况。交互式Python shell中任何返回值但未分配给变量的语句都会在控制台上打印其
repr
(表示形式)。如果将其分配给变量(即
contents=urllib….
),则不会转储任何输出。默认情况下,python shell将打印您运行的命令的结果。这正是shell所做的,作为交互运行的特例。