В этой статье мы шаг за шагом создадим простую «гадалку» – программу‚ которая будет отвечать на вопросы пользователя случайными предсказаниями‚ подобно классическому волшебному шарику 8‑ball. После того как код будет готов‚ покажем‚ как можно связаться с программой: через консоль‚ простой графический интерфейс (Tkinter) и через веб‑интерфейс на Flask.
Содержание
- Предварительные требования
- Проектирование гадалки
- Вариант 1: консольное приложение
- Вариант 2: GUI с Tkinter
- Вариант 3: веб‑приложение на Flask
- Как расширить функционал
- Как связаться с гадалкой (способы ввода вопроса)
Предварительные требования
- Python 3.8 или новее
- Базовые знания синтаксиса Python
- Для GUI – библиотека
tkinter(входит в стандартную поставку) - Для веб‑версии –
Flask(устанавливается через pip)
Проектирование гадалки
Гадалка будет состоять из трёх основных частей:
- База ответов – список строк с возможными предсказаниями.
- Функция получения ответа – выбирает случайный элемент из базы.
- Интерфейс ввода/вывода – консоль‚ окно 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
Как запустить
- Сохраните код в файл
fortune_console.py. - Откройте терминал и выполните
python fortune_console.py. - Вводите вопросы и получайте ответы.
Вариант 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
- Сохраните код в файл
fortune_gui.py. - Запустите:
python fortune_gui.py. - Введите вопрос в поле и нажмите «Спросить» или клавишу 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 %}
- В терминете выполните
cd projectиpython app.py.- Откройте браузер и перейдите по адресу
http://127.0.0.1:5000/.- Введите вопрос и нажмите «Спросить».
Как расширить функционал
- Больше ответов – добавьте свои фразы в список
answers. - Тематические гадалки – создайте отдельные списки для любви‚ карьеры‚ здоровья и выбирайте их в зависимости от ключевого слова в вопросе.
- Логирование – сохраняйте вопросы и ответы в файл
log.txtили базу данных SQLite для последующего анализа. - Голосовой ввод – интегрируйте библиотеку
speech_recognitionдля распознавания речи. - Telegram‑бот – используйте
python‑telegram‑botи отправляйте ответы в чат.
Как связаться с гадалкой (способы ввода вопроса)
Связаться с нашей гадалкой можно несколькими удобными способами:
- Консоль – просто запустите скрипт и вводите вопросы в терминал. Подходит для быстрого тестирования и работы без графического интерфейса.
- GUI (Tkinter) – графическое окно с полем ввода и кнопкой. Удобно для пользователей‚ привыкших к классическим desktop‑приложениям.
- Веб‑интерфейс (Flask) – доступно через любой браузер‚ можно разместить на локальном сервере или выложить в интернет (например‚ на Heroku‚ Render или VPS). Позволяет нескольким пользователям одновременно пользоваться гадалкой.
- Telegram‑бот (опционально) – после небольшой доработки кода вы сможете общаться с гадалкой в любимом мессенджере‚ просто отправив сообщение боту.
- Голосовой ввод – с помощью
speech_recognitionможно задавать вопросы голосом‚ а ответ получать в виде текста или даже озвучивать черезpyttsx3.
Выберите тот способ‚ который наиболее удобен для вас и вашей аудитории. Все варианты используют одну и ту же логику выбора случайного ответа‚ поэтому менять «ядро» гадалки не потребуется.
Мы создали простую‚ но расширяемую гадалку на Python‚ показав три разных способа взаимодействия с ней: через консоль‚ графический интерфейс и веб‑страницу. Каждый из вариантов легко модифицировать под свои нужды – добавить новые ответы‚ логировать запросы‚ превратить в Telegram‑бот или голосового помощника.
Теперь вы знаете‚ как сделать гадалку на Python и как связаться с ней в удобной для вас форме. Удачной разработки и точных предсказаний!