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