限制输入数量,同时接受空格分隔的输入

时间:2019-06-10 13:21:19

标签: python input

我正在使用input().split()方法从python中以空格分隔的单行输入中输入列表中的元素。但是,我找不到限制输入的方法。就像用户在单行中提供超出预期的输入一样,是否有任何方法可以检查?

我了解了assert方法,但是无法正确实现。

import numpy
m,n = map(int,input().split())
a = numpy.array([input().split() for i in range(n)], int)
print(a)

输入:

3 2

1 2 3 4 5

3 4 5 6 7

输出:

[[1 2 3 4 5]
 [3 4 5 6 7]]

我希望该行每行包含3个元素,并且应避免/丢弃其余条目,而不会出现任何错误。请帮忙。 预期输出:

[[1 2 3]
 [3 4 5]]

2 个答案:

答案 0 :(得分:0)

def get_input():
        user_input = input("Input: ")

        split_input = user_input.split()

        if len(split_input) > 3:
                raise Exception("Too much input")

        return split_input

您可以有一些输出或临时输入等,而不是引发异常。

答案 1 :(得分:0)

您的代码基本上在那里,我只用list slicing来限制元素的最大数量,例如lst[:3]计算得出的列表最多包含3个元素。

在您的示例中,这将是:

import numpy
m,n = map(int,input().split())
a = numpy.array([input().split()[:m] for i in range(n)], int)
print(a)