#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