如何在Python 3中接受由空格和回车分隔的多组输入



所以我们允许用户输入他们想要输入的数字集。每组输入将包含两个由空格分隔的整数。然后,回车符表示下一组输入。例如,

Enter number of sets: 3
1 3
2 4
5 6

接下来我们将这些输入变量a,b,执行相同的操作,显示3个结果:

4
3
1  

它应该首先接受所有输入,然后显示所有各自的输出。我们有处理一组输入的逻辑,但是我们如何循环它以便我们可以接受这种格式的输入呢?

sets = int(input("Enter number of sets: "))
inputs = []
for n in range(sets):
    inputs[n] = int(input().strip())

列表超出范围错误导致崩溃。我们正在考虑创建一个列表的列表来保存这对值。有更简单的解决方案吗?

编辑:我正在寻找的是解决这个问题的方法。这并不一定要通过列表来完成。这不是一般的列表超出范围的问题。我知道哪里出了问题,我只是需要另一种方法。

input()返回一个类似于"1 3"的字符串。用类似a, b = map(int, input().split())的东西解析该字符串。使用list.append()保存输出。

from pprint import pprint
inputs = []
results = []
sets = int(input("Enter number of sets: "))
for n in range(sets):
    s = input()
    a, b = map(int, s.split())
    result = a + b
    inputs.append([a, b])
    results.append(result)
pprint(inputs)
pprint(results)

示例会话如下:

Enter number of sets: 3
1 3
2 4
5 6
[[1, 3], [2, 4], [5, 6]]
[4, 6, 11]

学习点为:

  • 使用str.split()将"1 3"这样的字符串转换成['1', '3']这样的列表
  • 使用map() with int()['1', '3']转换为[1, 3]
  • 使用变量解压来提取两个值
  • 使用append()来增加输入结果列表

相关内容

  • 没有找到相关文章

最新更新