Python脚本在我按下ctrl+C时才运行

2024-04-20 12:21:43 发布

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

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

import sys
input = sys.stdin.read()
tokens = input.split()
print (tokens)
a = int(tokens[0])
b = int(tokens[1])
if ((a + b)> 18):
    print ("Input numbers should be between 0 and 9")
else:
    print(a + b)

但运行如下:

^{pr2}$

但是在我按下ctrl+C(在windows中)之前,输出是不会出现的

C:\Python_Class>python APlusB.py
3 5
['3', '5']
8
Traceback (most recent call last):
  File "APlusB.py", line 20, in <module>
    print(a + b)
KeyboardInterrupt

Tags: pyimport程序readinputifstdinsys
3条回答

sys.stdin.read()将一直读取,直到遇到EOF(文件结尾)。这就是为什么“按回车键”似乎什么也做不了。在Windows上,您可以通过键入Ctrl+Z来发送EOF,或者在*nix系统上键入Ctrl+D。在

(请注意,在点击Ctrl+Z之前,您可能仍然需要点击Enter。我认为如果EOF不在线路的开头,终端就不能正确地处理EOF。)

如果只想读取输入直到换行,请使用^{}而不是{}。在

您可以使用input()函数读取用户的输入。在

代码示例

user_input = input("Please input a number !")
# Rest of the code

发生这种情况是因为sys.stdin.read试图读取标准输入可以提供的所有数据,包括新行、空格、制表符等。只有在解释器中断或遇到endofile时才会停止读取(在类UNIX系统中为Ctrl+D,在Windows上为Ctrl+Z)。在

请求输入的标准函数只是input()

相关问题 更多 >