Python脚本没有运行,直到我点击ctrl + C.

时间:2016-11-06 17:56:38

标签: python python-3.x

我编写了一个简单的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)

但是在运行时如下:

C:\Python_Class>python APlusB.py
3 5<- pressed enter after this

但直到我点击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

3 个答案:

答案 0 :(得分:2)

sys.stdin.read()将一直读到,直到遇到EOF(文件结尾)。这就是“按下输入”似乎没有做任何事情的原因。您可以通过键入 Ctrl + Z 在Windows上发送EOF,或者使用 Ctrl + D 在* nix系统上发送EOF

(注意你可能仍然需要在点击 Ctrl + Z 之前点击 Enter 。我不认为终端会对待EOF正确的,如果它不在一行的开头。)

如果您只想在换行前阅读输入内容,请使用input()代替sys.stdin.read()

答案 1 :(得分:0)

这是因为sys.stdin.read尝试读取标准输入可以提供的所有数据,包括新行,空格,制表符,等等。只有在解释器被中断或者命中EndOfFile时才会停止读取(在类UNIX系统上按Ctrl + D,在Windows上按Ctrl + Z)。

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

答案 2 :(得分:0)

您可以使用输入()功能读取用户的输入。

示例代码

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