如何通过在 python 3 中结束文件来终止输入

How do I terminate an input by ending the file in python 3

我正在处理的代码是一个简单的减法工作,但是当我需要结束输入时,我的问题就出现了。

问题告诉我输入在文件末尾终止,当问题有任意数量的输入时我不知道这意味着什么。

while(True):
    data=[]
    data= list(map(int,sys.stdin.readline().split()))
    if (data[1]>data[0]):
        total=data[1]-data[0]
    else:
        total=data[0]-data[1]
    print(total)

如何更改此代码以允许它在用户不输入任何内容的情况下结束

按照评论中的建议,使用循环遍历 sys.stdin。我还添加了一些其他改进:

for line in sys.stdin:
    data = [int(x) for x in line.split()]
    total = abs(data[1] - data[0])
    print(total)

我在 Open Kattis 平台上研究问题时遇到了这个答案:

https://open.kattis.com/problems/different

我想我们都在做同样的事情。但是上面的解决方案不起作用,我一直收到“运行 时间错误”当你在 Kattis 上使用 Python 时很难弄清楚错误是什么,因为他们几乎从不给你任何形式的堆栈跟踪类型输出。

我需要为 sys 添加一个导入。我想出来了,因为我的 IDE 表示需要它。

import sys

for i in sys.stdin:
    a, b = [int(x) for x in i.split()]
    print(abs(a - b))