Как сделать простого AI-чатбота на Python

Как сделать чатбота на Python: пошаговый проект для детей и новичков

Ты когда-нибудь писал сообщение боту на сайте или в приложении? Например, спрашивал что-то у поддержки, а ответ прилетал почти сразу.

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

В этой статье мы создадим простого чатбота на Python. Это будет учебный цифровой помощник, который сможет:

  • защищать вход: пускать пользователя по логину и паролю;
  • считать: работать как простой калькулятор;
  • общаться: отвечать на знакомые фразы;
  • развлекать: запускать мини-игры;
  • показывать меню: давать пользователю выбор действий.

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

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

Что получится в конце

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

Программа будет работать в консоли — это окно, где Python показывает сообщения и принимает команды от пользователя.

Учебный бот будет состоять из нескольких частей:

  • функции входа;
  • калькулятора;
  • функции ответов чатбота;
  • мини-игры «Чтение мыслей»;
  • мини-игры «Угадай число»;
  • главного меню.

Такой проект хорош тем, что ребёнок видит не отдельные упражнения, а цельную программу. Это уже похоже на маленькое приложение.

Что такое чатбот

Если говорить просто, чатбот — это программа-собеседник. Ты пишешь сообщение, а программа отвечает тебе.

Чатботов можно встретить в разных местах:

  • в интернет-магазинах;
  • в приложениях банков;
  • в мессенджерах, например Telegram или WhatsApp;
  • в обучающих курсах и играх;
  • на сайтах поддержки клиентов;
  • в сервисах доставки и бронирования.

Бывают сложные боты с искусственным интеллектом. Они могут понимать разные вопросы и отвечать почти как человек.

Но есть и простые боты. Они работают по правилам: если пользователь написал знакомое слово или фразу, бот даёт заранее подготовленный ответ. Именно такого простого и понятного бота мы сделаем в этой статье.

Почему Python подходит для создания чатбота

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

Наш бот поможет потренировать важные темы Python:

  • переменные — для хранения данных;
  • условия if-else — чтобы программа могла принимать решения;
  • функции — чтобы разделить программу на понятные части;
  • циклы — чтобы бот мог повторять действия;
  • ввод данных input() — чтобы пользователь мог общаться с программой;
  • обработку ошибок — чтобы программа не ломалась из-за неправильного ввода;
  • работу со строками — чтобы бот проверял сообщения пользователя.

Для школьника такой проект полезнее, чем просто читать теорию. Здесь сразу видно, зачем нужны функции, условия и циклы.

Что нужно перед началом

Перед тем как писать код, подготовим рабочее место.

Инструмент Зачем он нужен
Установленный Python Чтобы запускать нашу программу.
Редактор кода Чтобы писать код. Можно использовать VS Code, PyCharm или Google Colab.
Базовые знания Python Нужно немного понимать переменные, условия, функции и циклы.
Немного терпения Ошибки в коде бывают у всех. Главное — спокойно их находить и исправлять.

Для установки Python лучше использовать официальный сайт Python Downloads. А если нужен удобный редактор, можно начать с официального руководства VS Code по Python.

Как запустить код

Чтобы запустить будущего чатбота, сделай так:

  1. Открой редактор кода.
  2. Создай новый файл.
  3. Назови его chatbot.py.
  4. Скопируй в него полный код из конца статьи.
  5. Запусти файл.
  6. Введи логин admin и пароль 1234.

После этого откроется главное меню, и ты сможешь выбрать калькулятор, чатбота или игру.

Как сделать чатбота на Python: пошаговый пример

Теперь соберём программу из отдельных частей. Сначала разберём каждый блок, а в конце покажем полный код целиком.

Такой подход удобен для новичков: вместо огромного непонятного кода мы будем собирать проект как конструктор.

1. Система входа

Сначала сделаем простой «замок» для нашей программы. Бот должен пускать только того, кто знает правильный логин и пароль.

username = "admin"
password = "1234"

def login():
    while True:
        print("Введите имя пользователя")
        user_name = input()

        print("Введите пароль")
        pass_word = input()

        if user_name == username and pass_word == password:
            print("Вход выполнен успешно")
            main_menu()
            return
        else:
            print("Неверный логин или пароль")

Как работает система входа

  • В программе уже записаны правильные логин и пароль.
  • Пользователь вводит свои данные.
  • Программа сравнивает введённые данные с правильными.
  • Если всё совпало — открывается главное меню.
  • Если данные неправильные — программа показывает ошибку и просит попробовать снова.

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

2. Калькулятор на Python

Теперь научим нашего бота считать. Он сможет складывать, вычитать, умножать и делить числа.

def calculator():
    try:
        num1 = int(input("Введите первое число: "))
        num2 = int(input("Введите второе число: "))
    except ValueError:
        print("Ошибка: нужно вводить только целые числа")
        return

    print("Выберите действие. Напишите знак: + или - или * или /")
    print("+  Сложение")
    print("-  Вычитание")
    print("*  Умножение")
    print("/  Деление")

    choice = input("Введите ваш выбор: ")

    if choice == "+":
        print("Результат:", num1 + num2)
    elif choice == "-":
        print("Результат:", num1 - num2)
    elif choice == "*":
        print("Результат:", num1 * num2)
    elif choice == "/":
        if num2 == 0:
            print("Делить на ноль нельзя")
        else:
            print("Результат:", num1 / num2)
    else:
        print("Неверный выбор")

Как работает калькулятор

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

В этом блоке есть две важные защиты:

  • try-except помогает программе не сломаться, если пользователь вместо числа введёт буквы;
  • if num2 == 0 защищает программу от деления на ноль.

Так код становится надёжнее и понятнее для начинающих.

3. Ответы чатбота

Теперь научим бота отвечать на сообщения. Для этого создадим функцию, которая ищет в тексте пользователя знакомые слова.

def chatbot_reply():
    user = input("Вы: ").lower()

    if "привет" in user or "здравствуй" in user:
        return "Привет! 👋"

    elif "как дела" in user:
        return "У меня всё отлично! А у тебя? 😊"

    elif "как тебя зовут" in user or "твое имя" in user:
        return "Я твой Python-чатбот 🤖"

    elif "помощь" in user or "помоги" in user:
        return "Я могу общаться, считать и играть в игры!"

    elif "пока" in user or "до свидания" in user:
        return "До свидания! Хорошего дня! 👋"

    else:
        return "Хм... Я не понял сообщение. Попробуй написать по-другому!"

Маленькие хитрости чатбота

  • .lower() превращает весь текст пользователя в маленькие буквы. Поэтому бот понимает и ПРИВЕТ, и привет, и ПрИвЕт.
  • Оператор in проверяет, есть ли нужное слово внутри сообщения.
  • Если бот не нашёл знакомых слов, он честно отвечает, что пока не понял сообщение.

Такой бот ещё не умеет думать как человек. Но он уже показывает главный принцип: программа получает сообщение, проверяет его и выбирает ответ.

4. Магическая игра «Чтение мыслей»

Теперь добавим игру. Бот будет давать инструкции, а в конце покажет число, которое осталось у пользователя в уме.

import time
import random

def mind_game():
    print("Загадай число от 1 до 10 и никому его не говори")
    time.sleep(5)

    answer = input("Возьми у родителей в долг такую же сумму. Когда закончишь, напиши да: ").lower()

    while answer != "да":
        answer = input("Напиши да, когда будешь готов: ").lower()

    print("Хорошо, идём дальше")

    myamount = [10, 12, 14, 16, 18, 20]
    myamountchoice = random.choice(myamount)

    print("Теперь прибавь", myamountchoice, "к числу, которое ты загадал")
    time.sleep(4)

    print("Теперь отдай половину суммы другу")
    time.sleep(4)

    print("Верни долг, который ты взял у родителей")

    answer = input("Когда закончишь, напиши да: ").lower()

    while answer != "да":
        answer = input("Напиши да, когда будешь готов: ").lower()

    ans = myamountchoice / 2
    print("Число, которое осталось у тебя в уме:", ans)

Секрет фокуса

Для этой игры используются две полезные библиотеки Python:

  • time — чтобы бот делал паузы и давал время посчитать в уме;
  • random — чтобы программа выбирала случайное число из списка.

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

5. Игра «Угадай число»

Теперь сделаем ещё одну мини-игру. Программа загадывает секретное число, а пользователь пытается его угадать.

def secret_game():
    secret = 7
    attempts = 3

    while attempts > 0:
        try:
            guess = int(input("Угадай число от 1 до 10: "))
        except ValueError:
            print("Нужно вводить только число")
            continue

        if guess == secret:
            print("Ты победил!")
            return
        else:
            attempts = attempts - 1
            print("Неверно. Осталось попыток:", attempts)

    print("Игра окончена. Секретное число было:", secret)

Как работает игра

  • В переменной secret хранится секретное число.
  • У игрока есть 3 попытки.
  • Если число угадано — программа пишет Ты победил!.
  • Если попытки закончились — программа показывает правильный ответ.

Так игра становится интереснее, чем версия с одной попыткой.

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

def main_menu():
    while True:
        print("\n=== ГЛАВНОЕ МЕНЮ ===")
        print("1. Калькулятор")
        print("2. Чатбот")
        print("3. Игра «Чтение мыслей»")
        print("4. Игра «Угадай число»")
        print("5. Выход")

        choice = input("Введите ваш выбор: ")

        if choice == "1":
            calculator()

        elif choice == "2":
            print("Начните общение. Напишите 'пока', чтобы выйти")

            while True:
                response = chatbot_reply()
                print("Бот:", response)

                if "до свидания" in response.lower():
                    break

        elif choice == "3":
            mind_game()

        elif choice == "4":
            secret_game()

        elif choice == "5":
            print("До свидания 👋")
            break

        else:
            print("Неверный выбор ❌")

login()

Как работает главное меню

В этом коде используется бесконечный цикл while True. Благодаря ему меню появляется снова и снова, пока пользователь сам не выберет пункт выхода.

  • Если выбрать 1, откроется калькулятор.
  • Если выбрать 2, начнётся разговор с чатботом.
  • Если выбрать 3, запустится игра «Чтение мыслей».
  • Если выбрать 4, запустится игра «Угадай число».
  • Если выбрать 5, программа завершится.

В самом конце стоит команда login(). Она запускает программу с системы входа. Сначала пользователь вводит логин и пароль, а уже потом попадает в главное меню.

Полный код чатбота на Python

Теперь соберём все части вместе. Скопируй этот код в файл chatbot.py и запусти его.

import time
import random

username = "admin"
password = "1234"


def login():
    while True:
        print("Введите имя пользователя")
        user_name = input()

        print("Введите пароль")
        pass_word = input()

        if user_name == username and pass_word == password:
            print("Вход выполнен успешно")
            main_menu()
            return
        else:
            print("Неверный логин или пароль")


def calculator():
    try:
        num1 = int(input("Введите первое число: "))
        num2 = int(input("Введите второе число: "))
    except ValueError:
        print("Ошибка: нужно вводить только целые числа")
        return

    print("Выберите действие. Напишите знак: + или - или * или /")
    print("+  Сложение")
    print("-  Вычитание")
    print("*  Умножение")
    print("/  Деление")

    choice = input("Введите ваш выбор: ")

    if choice == "+":
        print("Результат:", num1 + num2)
    elif choice == "-":
        print("Результат:", num1 - num2)
    elif choice == "*":
        print("Результат:", num1 * num2)
    elif choice == "/":
        if num2 == 0:
            print("Делить на ноль нельзя")
        else:
            print("Результат:", num1 / num2)
    else:
        print("Неверный выбор")


def chatbot_reply():
    user = input("Вы: ").lower()

    if "привет" in user or "здравствуй" in user:
        return "Привет! 👋"

    elif "как дела" in user:
        return "У меня всё отлично! А у тебя? 😊"

    elif "как тебя зовут" in user or "твое имя" in user:
        return "Я твой Python-чатбот 🤖"

    elif "помощь" in user or "помоги" in user:
        return "Я могу общаться, считать и играть в игры!"

    elif "пока" in user or "до свидания" in user:
        return "До свидания! Хорошего дня! 👋"

    else:
        return "Хм... Я не понял сообщение. Попробуй написать по-другому!"


def mind_game():
    print("Загадай число от 1 до 10 и никому его не говори")
    time.sleep(5)

    answer = input("Возьми у родителей в долг такую же сумму. Когда закончишь, напиши да: ").lower()

    while answer != "да":
        answer = input("Напиши да, когда будешь готов: ").lower()

    print("Хорошо, идём дальше")

    myamount = [10, 12, 14, 16, 18, 20]
    myamountchoice = random.choice(myamount)

    print("Теперь прибавь", myamountchoice, "к числу, которое ты загадал")
    time.sleep(4)

    print("Теперь отдай половину суммы другу")
    time.sleep(4)

    print("Верни долг, который ты взял у родителей")

    answer = input("Когда закончишь, напиши да: ").lower()

    while answer != "да":
        answer = input("Напиши да, когда будешь готов: ").lower()

    ans = myamountchoice / 2
    print("Число, которое осталось у тебя в уме:", ans)


def secret_game():
    secret = 7
    attempts = 3

    while attempts > 0:
        try:
            guess = int(input("Угадай число от 1 до 10: "))
        except ValueError:
            print("Нужно вводить только число")
            continue

        if guess == secret:
            print("Ты победил!")
            return
        else:
            attempts = attempts - 1
            print("Неверно. Осталось попыток:", attempts)

    print("Игра окончена. Секретное число было:", secret)


def main_menu():
    while True:
        print("\n=== ГЛАВНОЕ МЕНЮ ===")
        print("1. Калькулятор")
        print("2. Чатбот")
        print("3. Игра «Чтение мыслей»")
        print("4. Игра «Угадай число»")
        print("5. Выход")

        choice = input("Введите ваш выбор: ")

        if choice == "1":
            calculator()

        elif choice == "2":
            print("Начните общение. Напишите 'пока', чтобы выйти")

            while True:
                response = chatbot_reply()
                print("Бот:", response)

                if "до свидания" in response.lower():
                    break

        elif choice == "3":
            mind_game()

        elif choice == "4":
            secret_game()

        elif choice == "5":
            print("До свидания 👋")
            break

        else:
            print("Неверный выбор ❌")


login()

Что делать, если появилась ошибка

Ошибки в программировании — это нормально. Даже опытные разработчики постоянно исправляют ошибки в коде.

Вот несколько частых проблем:

  • Ошибка при вводе числа: проверь, что ты вводишь именно число, а не буквы.
  • Неверный логин или пароль: используй логин admin и пароль 1234.
  • Программа не запускается: проверь, что файл сохранён с расширением .py.
  • Код скопировался неправильно: проверь отступы. В Python отступы очень важны.
  • Редактор показывает ошибку: проверь, что все строки внутри функций имеют одинаковые отступы.
  • Меню не появляется: проверь, есть ли в конце файла строка login().

Если ошибка появилась, не нужно сразу переписывать весь код. Лучше проверить программу по частям: сначала вход, потом калькулятор, потом чатбота, потом игры.

Как можно улучшить этого чатбота

После первого запуска ты можешь сделать программу ещё интереснее.

  • Добавить больше фраз для общения с ботом.
  • Сделать случайные ответы, чтобы бот не всегда говорил одно и то же.
  • Добавить новые игры.
  • Сделать секретное число случайным.
  • Добавить сохранение имени пользователя.
  • Добавить счётчик побед в играх.
  • Сделать меню более красивым.
  • Добавить сохранение результата в файл.
  • Подключить настоящую AI-модель, когда ты лучше изучишь Python.

Пример улучшения: случайное секретное число

Сейчас в игре «Угадай число» секретное число всегда равно 7. Можно сделать так, чтобы Python выбирал его случайно:

secret = random.randint(1, 10)

Так игра станет интереснее: каждый запуск будет немного другим.

Чему ты научился

Поздравляем! Ты прошёл путь от простых строк кода до полноценного учебного проекта на Python.

Теперь ты лучше понимаешь, как работают:

  • функции;
  • условия;
  • циклы;
  • ввод данных;
  • работа со строками;
  • обработка ошибок;
  • простая логика чатбота;
  • главное меню программы;
  • мини-игры в консоли.

Это хороший первый шаг в мир программирования и искусственного интеллекта. Конечно, наш бот пока не думает как настоящий человек. Он работает по простым правилам. Но именно с таких проектов начинается путь к созданию более сложных программ.

Почему такой проект полезен детям

Простой чатбот на Python помогает ребёнку понять, что программирование — это не только сухие задачи из учебника. Код может превращаться в понятный проект: помощника, игру, калькулятор или программу с меню.

Такой проект развивает:

  • логику;
  • внимательность;
  • умение читать ошибки;
  • терпение;
  • понимание структуры программы;
  • интерес к Python и AI;
  • уверенность в работе с кодом.

Для школьников это хороший проект после первых уроков Python. Он показывает, как отдельные темы — переменные, условия, функции и циклы — соединяются в одну работающую программу.

Заключение

Сделать простого чатбота на Python не так сложно, как может показаться сначала.

Главное — идти шаг за шагом:

  • сначала понять идею;
  • потом написать маленькие части программы;
  • затем соединить их в один проект;
  • после этого запустить код и проверить результат;
  • а потом попробовать улучшить программу самостоятельно.

Такой проект помогает детям понять, что программирование — это не страшно. Это способ создавать свои игры, помощников и полезные программы.

Чатбот на Python — хороший первый проект для школьника, который уже знает основы языка и хочет увидеть настоящий результат своей работы.

FAQ: частые вопросы о чатботе на Python

Можно ли сделать чатбота на Python бесплатно?

Да. Для этого достаточно установить Python и использовать бесплатный редактор кода, например VS Code или Google Colab.

Это настоящий AI-чатбот?

Нет. Это учебный чатбот, который работает по правилам и ключевым словам. Он не использует настоящую нейросеть, но помогает понять базовый принцип работы чатботов.

Подходит ли этот проект для детей?

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

Почему для чатботов часто используют Python?

Python простой, понятный и удобный для начинающих. На нём легко писать первые программы, игры, чатботов и учебные проекты.

Почему в коде используется try-except?

try-except нужен, чтобы программа не ломалась из-за неправильного ввода. Например, если пользователь должен ввести число, но вводит буквы, программа покажет понятное сообщение об ошибке.

Можно ли улучшить этого чатбота?

Да. Можно добавить больше ответов, случайные реакции, новые игры, сохранение имени пользователя, запись результатов в файл или подключить настоящую AI-модель.

Что изучать после такого проекта?

После этого проекта можно изучать списки, словари, файлы, модули, Telegram-ботов, простые API, основы ООП и более серьёзные Python-проекты.

Можно ли сделать такого бота в Telegram?

Да, но это уже следующий уровень. Для Telegram-бота нужно разобраться с API, токеном бота, библиотеками Python и обработкой сообщений.

Полезные ресурсы

Читайте также

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

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

Последние

Баг в программировании: объяснение для детей

Баг в программировании: объяснение для детей

05.06.2026
Переменная в программировании: объяснение для детей

Переменная в программировании: объяснение для детей

04.06.2026
AP Computer Science Principles: курс и экзамен AP CSP

AP Computer Science Principles: курс и экзамен AP CSP

03.06.2026