从 python 中的多行读取多个输入
Read multiple inputs from multiple line in python
输入:
691 41
947 779
输出:
1300
336
我试过这个解决方案a link
但我的问题是最后一行的结尾未知
我的代码:
for line in iter(input,"\n"):
a,b = line.split()
a = int(a)
b = int(b)
result = 2 * (a - b)
print(result)
我的代码正在打印所需的输出,但 for 循环没有终止。我是 python 的新蜜蜂,有什么方法可以从 stdin 控制台找到最后的输入吗???
函数输入正在剥离尾部\n,所以在函数iter中使用空字符串作为分隔符。
你提到你尝试过 this
但是您似乎将 '\n'
实现为 sentinel
(使用 link 中 post 中的术语)。
您可能需要尝试实际使用停用词,如下所示:
stopword = 'stop'
for line in iter(input, stopword):
a,b = line.split()
a = int(a)
b = int(b)
result = 2 * (a - b)
print(result)
可能不是您需要的,但我没有弄清楚您的输入来自何处,我尝试通过使用 fileinput
阅读 std in
中的所有内容并在 [= 时离开来调整您的代码15=] 被按下:
import fileinput
for line in fileinput.input():
if line == '\n':
break
a, b = line.split()
a = int(a)
b = int(b)
result = 2 * (a - b)
print(result)
你缺少的是 input()
strips 字符串末尾的换行符 returns,这样当你单独点击 <RET>
iter()
看到的一行(即它测试最终终止循环的内容)不是 "\n"
而是空字符串 ""
(注意绝对 没有空格 在双引号之间)。
我在这里剪切并粘贴了一个示例会话,向您展示了如何定义正确的标记字符串(空字符串)
In [7]: for line in iter(input, ""):
...: print(line)
...:
asde
asde
In [8]:
如您所见,当我在第 n 个输入行上单独按下 <RET>
时,循环终止。
ps:我看到了 gcx11 has posted (我已投赞成票)。我希望我的回答能增加一些背景信息,并说明它是如何有效地成为正确答案的。
输入:
691 41
947 779
输出:
1300
336
我试过这个解决方案a link
但我的问题是最后一行的结尾未知
我的代码:
for line in iter(input,"\n"):
a,b = line.split()
a = int(a)
b = int(b)
result = 2 * (a - b)
print(result)
我的代码正在打印所需的输出,但 for 循环没有终止。我是 python 的新蜜蜂,有什么方法可以从 stdin 控制台找到最后的输入吗???
函数输入正在剥离尾部\n,所以在函数iter中使用空字符串作为分隔符。
你提到你尝试过 this
但是您似乎将 '\n'
实现为 sentinel
(使用 link 中 post 中的术语)。
您可能需要尝试实际使用停用词,如下所示:
stopword = 'stop'
for line in iter(input, stopword):
a,b = line.split()
a = int(a)
b = int(b)
result = 2 * (a - b)
print(result)
可能不是您需要的,但我没有弄清楚您的输入来自何处,我尝试通过使用 fileinput
阅读 std in
中的所有内容并在 [= 时离开来调整您的代码15=] 被按下:
import fileinput
for line in fileinput.input():
if line == '\n':
break
a, b = line.split()
a = int(a)
b = int(b)
result = 2 * (a - b)
print(result)
你缺少的是 input()
strips 字符串末尾的换行符 returns,这样当你单独点击 <RET>
iter()
看到的一行(即它测试最终终止循环的内容)不是 "\n"
而是空字符串 ""
(注意绝对 没有空格 在双引号之间)。
我在这里剪切并粘贴了一个示例会话,向您展示了如何定义正确的标记字符串(空字符串)
In [7]: for line in iter(input, ""):
...: print(line)
...:
asde
asde
In [8]:
如您所见,当我在第 n 个输入行上单独按下 <RET>
时,循环终止。
ps:我看到了 gcx11 has posted