我写了一个简单的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
sys.stdin.read()
将一直读取,直到遇到EOF(文件结尾)。这就是为什么“按回车键”似乎什么也做不了。在Windows上,您可以通过键入Ctrl+Z来发送EOF,或者在*nix系统上键入Ctrl+D。在(请注意,在点击Ctrl+Z之前,您可能仍然需要点击Enter。我认为如果EOF不在线路的开头,终端就不能正确地处理EOF。)
如果只想读取输入直到换行,请使用^{} 而不是{}。在
您可以使用input()函数读取用户的输入。在
代码示例
发生这种情况是因为
sys.stdin.read
试图读取标准输入可以提供的所有数据,包括新行、空格、制表符等。只有在解释器中断或遇到endofile时才会停止读取(在类UNIX系统中为Ctrl+D,在Windows上为Ctrl+Z)。在请求输入的标准函数只是
input()
相关问题 更多 >
编程相关推荐