小编Adr*_*min的帖子

究竟什么构成“输出”?

假设我们已经在Python或IDLE shell中运行了以下代码行:

print("hai") 
Run Code Online (Sandbox Code Playgroud)

屏幕上显示以下内容:

hai
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎违反直觉,因为print(arg)是一个void函数,因此在求值时始终返回None;NoneType是python中的数据类型,但是当表达式对其求值时,它不会显示在窗口上,而整数是:

5
Run Code Online (Sandbox Code Playgroud)

使它显示在屏幕上(在shell上运行):

5
Run Code Online (Sandbox Code Playgroud)

是否将此非显示行为硬编码到python中,仅是NoneType数据的功能?

我之所以要问这个问题,是因为所谓的“输出”似乎存在歧义,而且我担心这种歧义会使我的中期工作变得相当灾难性。例如,考虑以下代码行…

…在shell中运行:

5
Run Code Online (Sandbox Code Playgroud)

使它出现在屏幕上:

5
Run Code Online (Sandbox Code Playgroud)

…编译并运行:

5
Run Code Online (Sandbox Code Playgroud)

没有使任何东西出现在屏幕上。

-

表达式5在Python中的计算结果为整数5,但整数5的输出结果与...相同

print(5)
Run Code Online (Sandbox Code Playgroud)

…在屏幕上输出“ 5”?以及print(5)函数调用求值的NoneType数据对象如何?那也将是输出吗?

我想我的问题的实际后果是:说有人问你这个问题:

这行代码的输出是什么?

print(5)
Run Code Online (Sandbox Code Playgroud)

正确的答案是:

(一种)。

5

没有

(b)。

5

要么

(C)。

没有 ?

从好的角度来说,这个问题怎么样:

这行代码的输出是什么?

5

正确的答案是:

(一种)。

要么

(b)。

5

以上两个问题的答案取决于两点:

  • “输出到底是什么构成的?评估值是输出吗?还是输出的字面意思就是:按回车键后屏幕会是什么样?

  • “我们如何运行代码很重要?由于在TextEdit中编写了代码行,然后对其进行编译然后运行,与在外壳中键入代码行并按回车键相比,屏幕上出现的内容有所不同。”

python python-idle

2
推荐指数
1
解决办法
73
查看次数

标签 统计

python ×1

python-idle ×1