【问题标题】:How to take multiple sets of inputs separated by space and carriage return in Python 3?如何在 Python 3 中采用由空格和回车分隔的多组输入?
【发布时间】:2017-01-12 09:44:43
【问题描述】:

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

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())

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

编辑:我正在寻找解决此问题的方法。不必专门通过列表来完成。这不是一个通用列表超出范围的问题。我确实知道出了什么问题,我只是需要另一种方法。

【问题讨论】:

标签: python list user-input python-3.4


【解决方案1】:

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]

学习要点是:

【讨论】:

    猜你喜欢
    • 2018-04-11
    • 2016-12-09
    • 2018-06-01
    • 2020-11-23
    • 2015-03-08
    • 2011-11-30
    • 2021-07-27
    • 2020-09-04
    • 2018-11-07
    相关资源
    最近更新 更多