Перейти к содержимому

Как сделать варианты ответа в python

  • автор:

Хочу создать несколько вариантов ответов

Stranger's user avatar

Например, перечислить в коллекции ( tuple , list , set , и т.п.) и через in проверить:

Либо стареньким способом через if :

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.9.6.43612

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как сделать варианты ответа в Python

В этой статье вы узнаете, как создать варианты ответа в Python с использованием структур данных и условий.

Использование списков

Списки — это упорядоченные коллекции объектов. Мы можем использовать списки для хранения вариантов ответа.

Использование словарей

Словари — это коллекции пар ключ-значение. Мы можем использовать словари для хранения вариантов ответа и соответствующих им действий.

Использование оператора if

Оператор if позволяет сравнивать значения и выполнять различные действия в зависимости от исхода сравнения.

Диалог с пользователем через командную строку: программа Yes/No на Python

Диалоговые программы используются везде, примером может служить любое приложение на вашем компьютере (браузер, видеоплееры, текстовые редакторы и т. д.). Диалог Yes/No — это простой пример диалоговой программы, работающей с командной строкой.

Что такое диалоговая программа и зачем она нужна

Программа, в которой предусмотрено взаимодействие с пользователем, называется диалоговой (интерактивной).

Ввод текста, нажатия на кнопки, загрузка файлов — всё это способы взаимодействия пользователя с приложением.

Диалог между программой и пользователем — это важная часть любого проекта. Если программа работает с одними строго определенными данными, она не несёт какого-либо практического смысла.

Диалоговая программа Yes/No на Python

Диалог может вестись как через графический интерфейс, так и через командную строку. С помощью Python можно реализовать и то и другое, однако общение с пользователем через терминал имеет более простую реализацию и требует меньше кода.

Суть такой программы проста: пользователь отвечает на вопросы, вводя в консоль Yes – да, или No – нет. Не стоит думать, что сейчас актуально взаимодействовать с программой только через графический интерфейс, командная строка также используется.

Понятно, что диалог через командную строку чаще используется продвинутыми пользователями или техническими специалистами, которых не пугает работа в режиме текстовых команд.

Консольный диалог Yes/No особенно актуален, потому что не требует реализовывать графический интерфейс, который может быть бесполезен для выполнения определённых задач.

Реализация функции диалога Yes/No на Python

Написать консольную диалоговую программу на Python очень просто, однако нужно учесть и продумать некоторые нюансы, такие как неверный ввод от пользователя. Yes/no легко можно заменить на Да/нет, но давайте следовать общепринятым стандартам и использовать английский язык.

Объявление функции

Поместим всю логику диалоговой программы в отдельную функцию, которую объявим так:

Здесь аргументы означают следующее:

  • question – это вопрос, который выводится в командную строку, и на который пользователь должен дать ответ «yes» или «no».
  • default_ answer – это необязательный параметр, который будет использоваться в том случае, если пользователь не введет ответ, а просто нажмет Enter.

Начальные настройки

Предположим, что пользователь может вводить не только «yes», но и «y» или «ye». Обработка каждого вариант с помощью условных операторов if — else нецелесообразна и требует много лишнего кода. Поэтому поместим все варианты ответа в словарь:

default_answer позволяет указать предпочтительный вариант ответа, однако это не очевидно для обычного пользователя. В зависимости от содержимого default_answer будем выводить соответствующую подсказку:

При вводе аргумента default_answer тоже можно допустить ошибку, поэтому в блоке else мы возбуждаем исключение, которое указывает на неверный ввод.

Основной цикл

Необходимо продумать следующие ситуации, когда пользователь:

  • Ничего не вводит, но определен default_answer .
  • Вводит верный ответ.
  • Вводит неверный ответ.

Для реализации лучше использовать бесконечный цикл. Сначала необходимо вывести вопрос и подсказку, а затем получить ввод пользователя:

Подробнее про ввод и вывод данных можно почитать здесь.

Теперь ввод необходимо обработать так, чтобы при правильном вводе происходил выход из цикла, а при неправильном цикл начинался заново:

Полный код функции

Соединив все вместе, получаем готовую к использованию функцию для диалога с пользователем:

Пример программы

Предположим, что функция получает несколько вопросов из файла, результаты ответов записываются в другой файл, тогда код программы будет выглядеть так:

С помощью метода строк strip удалим лишние символы.

Перед запуском программы на Python надо не забыть подготовить файл с вопросами qst.txt такого вида:

Чтобы русские буквы корректно отображались — правильно указываем кодировку при открытии файла. В моём случае это encoding=»utf-8″ .

Выбор варианта сценария в зависимости от ответа пользователя

Сделать выбор цвета в зависимости от ответа
Как сделать так, чтобы в коде после выбора правильного ответа цвет становился зелёным, а если ответ.

Запросить у пользователя ввести возраст и вывести сообщение в зависимости от ответа
Необходимо запросить у пользователя ввести возраст (метод prompt()). Вызывать функцию, которая.

Создать два варианта сценария для построения графика
Здравствуйте. Мне требуется построить два графика разными способами. На выходе они должны быть.

Создать два варианта сценария для построения, оформления и вывода графика
Здравствуйте, проблема с графиками: Создать два варианта сценария для построения, оформления и.

Создать два варианта сценария для построения, оформления и вывода графика
Здравствуйте! Посмотрел пример на форуме по созданию графика в матлабе! написал программу по.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *