Как вы ограничиваете количество входных аргументов для функции input () в python?

#python #list #input #python-3.8

#python #Список #ввод #python-3.8

Вопрос:

Допустим, у меня есть это:

 maxNumOfArgs = int(input("enter length of list: "))

listOfNums = input("enter space separated list elements: ")

  

Ничто не мешает пользователю вводить больше аргументов, чем maxNumOfArgs . Есть ли краткий питонический способ ограничить количество вводимых аргументов в input() вызове?

Ответ №1:

Когда вы разделяете вторую входную строку, вы можете удалить все аргументы, превышающие запрошенную максимальную длину

 # Get requested length
max_num_args = int(input("enter length of list: "))

# Get input string of comma-separated elements
all_inputs = input("enter space separated list elements: ")

# Split string by comma and only keep up to the maximum requested list length
input_values = all_inputs.split(',')[:max_num_args] 
  

Ответ №2:

Когда вы разделяете str возвращаемое с помощью input() , вы можете ограничить количество разделений, передав параметр maxsplit .

Пример:

 >>> test = input("enter data: ")
a b c d e f
>>> args = test.split(" ", maxsplit=3)
>>> args
['a', 'b', 'c', 'd e f']
  

Обратите внимание, что в худшем случае массив, возвращаемый split, будет содержать 4 элемента, поскольку вы ограничили его 3 разделениями.