Эквивалент Python для пакетной команды Choice
Я работаю над небольшим проектом на python, и после небольшой работы над ним мне стало интересно, есть ли способ ввода данных в python 3, который чем-то напоминает команду выбора пакета. Практически всего одна кнопка ввода, а затем завершение ввода.
Например:
Choice(['Y', 'N'], "Yes or No? ")
Где пользователь может нажать "Y" или "N", и программа продолжит работу.
Я немного поработал, но не нашел ничего, что можно было бы использовать.
Бонус:
Что было бы еще более полезно, если бы эта команда "выбора" могла, кроме нескольких символов. Довольно много input
но ограничение количества символов, которые они могут ввести, а затем сразу же продолжить. Последнее из которых оказывается трудным.
Заранее спасибо, мона
1 ответ
Там нет встроенного для этого, но вы могли бы сделать что-то вроде этого:
def choice(options, prompt):
while True:
output = input(prompt) # Use raw_input(prompt) for Python 2.x
if output in options:
return output
else:
print("Bad option. Options: " + ", ".join(options))
Это позволит пользователю вводить произвольные строки (любой длины) в командную строку и будет продолжаться после нажатия пользователем. enter
, К сожалению, я не знаю простого способа автоматической остановки после заданного количества символов.
Тем не менее, в этом посте обсуждаются способы получения одного символа из командной строки. Возможно, вы сможете адаптировать его к вышеуказанной функции, чтобы он автоматически продолжался после определенного количества символов, не дожидаясь enter
ключ для нажатия.