Ограничение количества входов при принятии от входа, разделенного пробелом - PullRequest
0 голосов
/ 10 июня 2019

Я использую метод 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 голосов
/ 10 июня 2019

ваш код в основном там, я бы просто использовал нарезку списка , чтобы ограничить максимальное количество элементов, например 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)
0 голосов
/ 10 июня 2019
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

Вместо выдачи исключения вы можете получить какой-либо вывод или другую попытку ввода и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...