МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Проект на Python: «Простой чат-бот»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Программирование на Python»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2024 г.
В ходе изучения программирования на основе языка Python большую роль играет разработка проектов. Они позволяют отработать как навыки программирования, вспомнить работу различных функций, команд, развить навыки построения алгоритмов.
Целью данной разработки является повышение интереса учащихся к техническому творчеству посредством работы над проектом на языке Python.
Данная методическая разработка используется как обучающий пример для работы по дополнительной общеобразовательной общеразвивающей программе технической направленности «Программирование на Python». С их помощью учащиеся смогут применить теоретические знания на практике, построив сложные алгоритмы для решения собственных задач.
Самостоятельная разработка PET-проектов является неотъемлемой частью обучения программирования. Она помогает не только глубже вникнуть в работу языка программирования, но и изучить различные библиотеки, научить самостоятельно строить алгоритм. PET-проекты могут быть развлекательного характера, а могут выполнять определенную очень важную функцию – таким проектом можно поделиться с близкими, друзьями, коллегами или опубликовать в какой-либо социальной сети или форуме.
Данная методическая разработка предлагает один из возможных вариантов PET-проекта. Проект «Простой чат-бот» позволяет попробовать свои силы в работе с условным оператором, циклами, пользовательским вводом.
Проект «Простой чат-бот»
Цель проекта: создание простого текстового чат-бота, который может поддерживать диалог с пользователем, отвечать на популярные вопросы, шутить, выполнять простые вычисления и предоставлять интересные факты.
Темы, которые необходимо знать для разработки проекта:
ввод и вывод данных;
условия (if, elif, else);
циклы (while);
работа с исключениями;
работа с модулями;
модули random и datetime.
Шаги разработки программы для чат-бота на Python
Определение целей и функций чат-бота
На этом этапе важно понять, что должен уметь бот. В нашем случае должен уметь:
– приветствовать пользователя;
– отвечать на заранее подготовленные вопросы;
– выполнять простые математические вычисления;
– предоставлять случайные анекдоты или интересные факты;
– понимать команды завершения работы.
Подготовка структуры программы
Четко определить, как будет организован основной поток программы:
бот будет работать в бесконечном цикле, пока пользователь не захочет завершить разговор.
в цикле будем обрабатывать различные команды с помощью условных операторов if, elif и else.
Программирование приветствия и стартового сообщения
Написать первое сообщение, которое бот выводит при запуске. Это сообщение должно быть приветственным и побуждать пользователя к взаимодействию.
Пример:
print("Бот: Привет! Я ваш виртуальный помощник. Как я могу вам помочь?")
Обработка пользовательского ввода
Использовать функцию input() для получения текста от пользователя. Этот ввод должен быть приведен к единому формату (например, преобразован в нижний регистр для унификации).
Пример:
user_input = input("Вы: ").strip().lower()
Создание условий для разных запросов
Ввести основные команды, которые бот должен уметь обрабатывать. Для этого используются условные операторы:
определение простых ответов на вопросы типа "как тебя зовут?" или "что ты умеешь?";
обработка команды "выход", чтобы завершить работу бота.
Пример:
if user_input == "как тебя зовут?":
print("Бот: Меня зовут Бот-помощник.")
Реализация случайных ответов
Для команд, таких как "как дела?" или "расскажи анекдот", используйте библиотеку random, чтобы бот мог давать разные ответы.
Пример:
import random
random.choice(["У меня все отлично!", "Все хорошо, спасибо!"])
Обработка времени и даты
Используя библиотеку datetime, добавьте возможность боту выводить текущее время и дату.
Пример:
from datetime import datetime
print(f"Бот: Сейчас {datetime.now().strftime('%H:%M:%S')}.")
Выполнение простых математических операций
Добавьте возможность для бота выполнять простые вычисления, используя функцию eval() для вычисления математических выражений.
Пример:
expression = input("Бот: Введите математическое выражение: ")
result = eval(expression)
print(f"Бот: Результат: {result}")
Обработка неизвестных запросов
Если бот не распознал команду, он должен сообщить об этом и предложить задать другой вопрос. Это делается через else в основном цикле.
Пример:
else:
print("Бот: Извините, я пока не понимаю этот вопрос. Задайте что-нибудь другое.")
Завершение работы
Чтобы завершить программу, бот должен распознать команду "пока", "выход" или "стоп". При получении этой команды бот выводит прощальное сообщение и завершает работу с помощью команды break.
Пример:
if user_input in ["пока", "выход", "стоп"]:
print("Бот: До свидания! Хорошего дня!")
break
Тестирование и отладка программы
После того, как весь код написан, следует протестировать программу, проверив, как она реагирует на различные команды и ввод пользователя. Важно убедиться, что:
программа не выходит из цикла по ошибке;
все команды правильно обрабатываются;
бот корректно выполняет вычисления и дает случайные ответы.
Расширение функционала (по желанию)
После того, как основная версия бота готова, можно добавить дополнительные функции, такие как:
интеграция с внешними API для получения информации о погоде;
добавление более сложных вычислений;
возможность обучать бота новым вопросам и ответам.
Листинг программы
import random
from datetime import datetime
# Приветствие
print("Бот: Привет! Я ваш виртуальный помощник. Как я могу вам помочь?")
# Основной цикл общения
while True:
user_input = input("Вы: ").strip().lower() # Считываем ввод пользователя и преобразуем в нижний регистр
# Условие выхода из программы
if user_input in ["пока", "выход", "стоп"]:
print("Бот: До свидания! Хорошего дня!")
break
# Ответы на популярные вопросы
elif user_input == "как тебя зовут?":
print("Бот: Меня зовут Бот-помощник.")
elif user_input == "как дела?":
print(f"Бот: {random.choice(['У меня все отлично!', 'Все хорошо, спасибо!'])}")
elif user_input == "что ты умеешь?":
print("Бот: Я могу отвечать на простые вопросы, говорить время и дату, а также поддерживать беседу!")
elif user_input == "сколько сейчас времени?":
print(f"Бот: Сейчас {datetime.now().strftime('%H:%M:%S')}.")
elif user_input == "какой сегодня день?":
print(f"Бот: Сегодня {datetime.now().strftime('%d.%m.%Y')}.")
elif user_input == "расскажи анекдот":
print(f"Бот: {random.choice(['Почему программисты не любят природу? Слишком много багов.', 'Девочка хочет стать программистом, потому что видит в этом свои скобки судьбы!'])}")
elif user_input == "что такое python?":
print("Бот: Python — это популярный язык программирования, известный своей простотой и универсальностью.")
elif user_input == "какой твой любимый цвет?":
print("Бот: Мой любимый цвет — синий, потому что он похож на цвет неба и бесконечного космоса.")
elif user_input == "как стать программистом?":
print("Бот: Начните с изучения основ программирования, практикуйтесь на реальных проектах и никогда не останавливайтесь в обучении.")
elif user_input == "расскажи интересный факт":
print("Бот: Интересный факт: в каждом iPhone есть немного золота. Оно используется в микросхемах для улучшения проводимости.")
elif user_input == "сколько будет 2+2?":
print("Бот: Это просто! Ответ: 4.")
elif user_input == "что такое искусственный интеллект?":
print("Бот: Искусственный интеллект — это способность машин выполнять задачи, которые обычно требуют человеческого интеллекта, например, распознавание речи или принятие решений.")
elif user_input == "ты можешь подсчитать что-то?":
expression = input("Бот: Введите математическое выражение, которое нужно подсчитать: ")
try:
result = eval(expression)
print(f"Бот: Результат: {result}")
except:
print("Бот: Извините, я не смог подсчитать это выражение.")
else:
print("Бот: Извините, я пока не понимаю этот вопрос. Задайте что-нибудь другое.")
Разработка чат-бота на Python поможет школьнику развить навыки работы с основными концепциями программирования, такими как обработка пользовательского ввода, использование условных операторов, циклов и библиотек Python. Он научится работать с текстовыми строками, обрабатывать ошибки, выполнять простые вычисления с помощью встроенных функций и использовать случайность для генерации различных ответов. Этот проект также познакомит с основами работы с датой и временем и поможет понять, как можно создавать интерактивные программы, что является важным этапом в обучении программированию.