Эквивалент 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 ключ для нажатия.

Другие вопросы по тегам