Как установить значение по умолчанию для нескольких входных данных из одной строки в python

#python #python-3.x #user-input

#python #python-3.x #пользовательский ввод

Вопрос:

Я пытаюсь получить спецификации трех необходимых входных данных и четвертого необязательного из одного ввода в Python.

 a, b, c, d = input("Please enter the number of the figure you would like and the x y coordinated in that order and a colour if you choose.").split()
 

Я хочу d быть необязательным с установленным значением по умолчанию, но я действительно борюсь с этим.

Ответ №1:

 # get input
inp = input("Please enter the number of the figure you would like and the x y coordinated in that order and a colour if you choose.").split()
# check how many parameters are passed
if len(input) == 3:
    # value for d is not passed
    a, b, c = inp
    d = default_value
else:
    # value for d is passed
    a, b, c, d = inp
 

Ответ №2:

Лучшее, что вы можете сделать, это:

 answers = input("...").split()
if len(answers) < 4:
    answers.append( default_value_for_4 )
 

Если вы действительно чувствуете необходимость называть их a, b, c, d, тогда просто сделайте:

 a, b, c, d = answers
 

Ответ №3:

Вы можете использовать это:

 a, b, c, d, *_ = (input("...")   " <default value>").split()
 

Это будет присвоено d <default value> , если есть только 3 входа.

Если есть 4 входа, то d будет присвоено четвертое значение, а значение переменной _ будет <default value> (что является соглашением Python для отбрасывания значения).

Ответ №4:

Вы можете использовать следующий код

 a , b , *c = input("Please enter the number of the figure you would like and the x y coordinated in that order and a colour if you choose.").split()
 

Если имеется несколько входных данных, все они будут сохранены, в c которых вы можете дополнительно обработать и присвоить их переменной d