Python脚本在EOF之后给出一个“D”

2024-04-19 05:38:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个简单的Python3程序,如下所示:

import sys
input = sys.stdin.read()
tokens = input.split()
a = int(tokens[0])
b = int(tokens[1])
print(a + b)

但在发送了一个“Ctrl-D”EOF之后,我得到了这个:

$ python3 APlusB.py
5 4 
9D

答案后面是“D”。 但如果我加上5和5,它就不会:

$ python3 APlusB.py
5 5 
10

为什么它用第一个发“D”,而不是第二个?你知道吗


Tags: pyimport程序readinputstdinsyspython3
1条回答
网友
1楼 · 发布于 2024-04-19 05:38:20

这是你终端的产物。你知道吗

将代码更改为:

import sys
input = sys.stdin.read()
tokens = input.split()
a = int(tokens[0])
b = int(tokens[1])

import time             # add these 2 lines
time.sleep(4)

print(a + b)

你会看到发生了什么:

首先,按control-D,终端在屏幕上显示^D。你知道吗

然后发生延迟。你知道吗

最后,python的print会发出1到2个字母(取决于您的输入),这些字母会覆盖您按Ctrl-D时终端显示的“^D”

我建议您开始使用^{}函数,它可以更好地处理用户。;—)

相关问题 更多 >