gpt4 book ai didi

Python 函数返回值与打印

转载 作者:行者123 更新时间:2023-12-01 07:48:04 25 4
gpt4 key购买 nike

我对编程非常陌生,所以请对我宽容点。我使用 Visual Studio Code 作为编辑器,在其中处理一些 python 文件。当我运行代码时,例如 pandas.dataframe.head() 函数,它不会在终端中返回任何内容。但是,当我打印相同的返回值时,我会按预期看到 csv 文件中的数据。

  • 谁能解释一下这是怎么回事?
  • 是否存在函数运行时数据被存储但不一定显示的情况?
  • 如果是这样,打印是调试时显示函数值的唯一方法吗?

尝试过谷歌搜索答案,但还不清楚。

import pandas as pd

df = pd.read_csv('sample.csv')
df.head()
# print(df.head())

期望在终端中显示一些数据

最佳答案

我相信您已经学会了使用 Jupyter或 python 控制台。 VS Code 是一个 IDE;它基本上是一个美化的文本编辑器,具有帮助开发人员的功能。您必须习惯在控制台中使用 python,其中每行/命令都会自动打印结果,而您现在可能正在创建脚本并期望发生相同的事情。我不认为“返回”与您所要求的内容有任何关系,因为无论哪种方式,它的作用都是相同的。

编辑 (因为我找到了实际的文档)

当在交互式控制台中 python 调用 sys.displayhook 时每次执行后。这是实际的文档:

If value is not None, this function prints repr(value) to sys.stdout, and saves value in builtins._. If repr(value) is not encodable to sys.stdout.encoding with sys.stdout.errors error handler (which is probably 'strict'), encode it to sys.stdout.encoding with 'backslashreplace' error handler.

sys.displayhook is called on the result of evaluating an expression entered in an interactive Python session. The display of these values can be customized by assigning another one-argument function to sys.displayhook.

这是我非常基本的解释 我希望我解释得足够好

在 python 控制台中,每行/命令的结果都会在执行后打印(即:当您按 Enter 时)。 (对于上下文,如果没有返回任何其他内容,每个函数/操作都会隐式返回 None,因此不会打印)

运行 python 脚本时,除非显式打印,否则控制台中不会显示任何内容(其他情况是 Uncaught Error 回溯、日志记录或写入 stdout 等...)

基本上就是这条线

df.head()

在脚本中执行 head功能于 df并返回结果,但结果不会发生任何变化,除非将其分配给变量或打印它。这和直接写是一样的:

"This will only print in a console"

如果该行在交互式控制台中执行,它将调用 sys.displayhook与值并打印结果:

'This will only print in a console'

但如果在脚本中运行,它本质上是一行不必要的代码,除非分配给变量。

基本上,控制台假设您希望在编码时看到结果。 (基本上在不打印 print 的每一行调用特殊的 None,并且在显式运行 print 时不会调用) 而运行脚本时,它仅打印到控制台当明确询问或其他特殊情况时。

关于Python 函数返回值与打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com