Гадалка на Python: консоль, GUI и веб‑версия

В этой статье мы шаг за шагом создадим простую «гадалку» – программу‚ которая будет отвечать на вопросы пользователя случайными предсказаниями‚ подобно классическому волшебному шарику 8‑ball. После того как код будет готов‚ покажем‚ как можно связаться с программой: через консоль‚ простой графический интерфейс (Tkinter) и через веб‑интерфейс на Flask.

Содержание

  1. Предварительные требования
  2. Проектирование гадалки
  3. Вариант 1: консольное приложение
  4. Вариант 2: GUI с Tkinter
  5. Вариант 3: веб‑приложение на Flask
  6. Как расширить функционал
  7. Как связаться с гадалкой (способы ввода вопроса)

Предварительные требования

  • Python 3.8 или новее
  • Базовые знания синтаксиса Python
  • Для GUI – библиотека tkinter (входит в стандартную поставку)
  • Для веб‑версии – Flask (устанавливается через pip)

Проектирование гадалки

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

  1. База ответов – список строк с возможными предсказаниями.
  2. Функция получения ответа – выбирает случайный элемент из базы.
  3. Интерфейс ввода/вывода – консоль‚ окно Tkinter или веб‑страница.

Мы будем использовать модуль random для генерации случайного выбора.

Вариант 1: консольное приложение

Код

import random

answers = [
 "Бесспорно да"‚
 "Определённо да"‚
 "Вероятно да"‚
 "Спросите позже"‚
 "Лучше не говорить сейчас"‚
 "Мои источники говорят нет"‚
 "Перспективы не очень хорошие"‚
 "Весьма сомнительно"
]

def get_answer:
 return random.choice(answers)

def main:
 print("=== Гадалка на Python ===")
 while True:
 question = input("
Задайте свой вопрос (или напишите 'выход' для завершения): ")
 if question.lower in ["выход"‚ "exit"‚ "quit"]:
 print("До свидания!")
 break
 if question.strip == "":
 print("Пожалуйста‚ введите вопрос.")
 continue
 print("
Гадалка отвечает:"‚ get_answer)

if __name__ == "__main__":
 main

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

  1. Сохраните код в файл fortune_console.py.
  2. Откройте терминал и выполните python fortune_console.py.
  3. Вводите вопросы и получайте ответы.

Вариант 2: GUI с Tkinter

import random
import tkinter as tk
from tkinter import messagebox

answers = [
 "Бесспорно да"‚
 "Определённо да"‚
 "Вероятно да"‚
 "Спросите позже"‚
 "Лучше не говорить сейчас"‚
 "Мои источники говорят нет"‚
 "Перспективы не очень хорошие"‚
 "Весьма сомнительно"
]
def get_answer:
 return random.choice(answers)
def ask_question:
 question = entry.get.strip
 if not question:
 messagebox.showwarning("Внимание"‚ "Пожалуйста‚ введите вопрос.")
 return
 answer = get_answer
 result_label.config(text=f"Гадалка отвечает: {answer}")
 entry.delete(0‚ tk.END)
def on_enter(event):
 ask_question

root = tk.Tk
root.title("Гадалка на Python")
root.geometry("400x200")

tk.Label(root‚ text="Задайте свой вопрос:"‚ font=("Arial"‚ 12)).pack(pady=10)

entry = tk.Entry(root‚ width=40‚ font=("Arial"‚ 12))
entry.pack(pady=5)
entry.bind(""‚ on_enter)

tk.Button(root‚ text="Спросить"‚ command=ask_question‚ font=("Arial"‚ 12)).pack(pady=10)

result_label = tk;Label(root‚ text=""‚ font=("Arial"‚ 12)‚ fg="darkblue")
result_label.pack(pady=10)

root.mainloop
  1. Сохраните код в файл fortune_gui.py.
  2. Запустите: python fortune_gui.py.
  3. Введите вопрос в поле и нажмите «Спросить» или клавишу Enter.

Вариант 3: веб‑приложение на Flask

Установка зависимостей

pip install flask
from flask import Flask‚ render_template‚ request
import random

app = Flask(__name__)

answers = [
 "Бесспорно да"‚
 "Определённо да"‚
 "Вероятно да"‚
 "Спросите позже"‚
 "Лучше не говорить сейчас"‚
 "Мои источники говорят нет"‚
 "Перспективы не очень хорошие"‚
 "Весьма сомнительно"
]

def get_answer:
 return random.choice(answers)

@app.route("/"‚ methods=["GET"‚ "POST"])
def index:
 answer = None
 question = ""
 if request.method == "POST":
 question = request.form.get("question"‚ "").strip
 if question:
 answer = get_answer
 else:
 answer = "Пожалуйста‚ введите вопрос."
if __name__ == "__main__":
 app.run(debug=True)



{% if answer %}

{{ answer }}

{% endif %}

  1. В терминете выполните cd project и python app.py.
  2. Откройте браузер и перейдите по адресу http://127.0.0.1:5000/.
  3. Введите вопрос и нажмите «Спросить».

Как расширить функционал

  • Больше ответов – добавьте свои фразы в список answers.
  • Тематические гадалки – создайте отдельные списки для любви‚ карьеры‚ здоровья и выбирайте их в зависимости от ключевого слова в вопросе.
  • Логирование – сохраняйте вопросы и ответы в файл log.txt или базу данных SQLite для последующего анализа.
  • Голосовой ввод – интегрируйте библиотеку speech_recognition для распознавания речи.
  • Telegram‑бот – используйте python‑telegram‑bot и отправляйте ответы в чат.

Как связаться с гадалкой (способы ввода вопроса)

Связаться с нашей гадалкой можно несколькими удобными способами:

  • Консоль – просто запустите скрипт и вводите вопросы в терминал. Подходит для быстрого тестирования и работы без графического интерфейса.
  • GUI (Tkinter) – графическое окно с полем ввода и кнопкой. Удобно для пользователей‚ привыкших к классическим desktop‑приложениям.
  • Веб‑интерфейс (Flask) – доступно через любой браузер‚ можно разместить на локальном сервере или выложить в интернет (например‚ на Heroku‚ Render или VPS). Позволяет нескольким пользователям одновременно пользоваться гадалкой.
  • Telegram‑бот (опционально) – после небольшой доработки кода вы сможете общаться с гадалкой в любимом мессенджере‚ просто отправив сообщение боту.
  • Голосовой ввод – с помощью speech_recognition можно задавать вопросы голосом‚ а ответ получать в виде текста или даже озвучивать через pyttsx3.

Выберите тот способ‚ который наиболее удобен для вас и вашей аудитории. Все варианты используют одну и ту же логику выбора случайного ответа‚ поэтому менять «ядро» гадалки не потребуется.

Мы создали простую‚ но расширяемую гадалку на Python‚ показав три разных способа взаимодействия с ней: через консоль‚ графический интерфейс и веб‑страницу. Каждый из вариантов легко модифицировать под свои нужды – добавить новые ответы‚ логировать запросы‚ превратить в Telegram‑бот или голосового помощника.

Теперь вы знаете‚ как сделать гадалку на Python и как связаться с ней в удобной для вас форме. Удачной разработки и точных предсказаний!