Хотите создать собственную цифровую гадалку, которая будет «предсказывать» будущее? Это отличный способ научиться программировать на Python! В этой статье мы шаг за шагом создадим интерактивную гадалку, которую можно запустить прямо на компьютере или даже превратить в мобильное приложение.
Что мы создадим?
Наша гадалка будет:
- Спрашивать имя пользователя
- Предлагать выбрать категорию вопроса (любовь, карьера, здоровье)
- Выдавать случайное «предсказание» с магическим оформлением
- Сохранять историю предсказаний
Шаг 1: Подготовка окружения
Для начала установим необходимые библиотеки:
import random
import time
import json
from datetime import datetime
Шаг 2: Создаем базу предсказаний
Сначала создадим «базу знаний» для нашей гадалки:
predictions = {
«любовь»: [
«💕 Ваше сердце скоро встретит родственную душу»,
«❤️ Старые чувства вернутся с новой силой»,
«💝 В ближайшие дни вы получите признание в любви»,
«💔 Будьте осторожны в отношениях в течение недели»
],
«карьера»: [
«📈 Неожиданное повышение уже на подходе»,
«💼 Ваши идеи будут оценены по достоинству»,
«📊 Начните новый проект ౼ он принесет успех»,
«⏰ Время сменить работу пришло»
],
«здоровье»: [
«🌱 Обратите внимание на режим сна»,
«🍎 Включите в рацион больше свежих овощей»,
«🏃♂️ Спорт принесет вам энергию»,
«🧘 Займитесь медитацией для внутреннего баланса»
]
}
Шаг 3: Создаем класс Гадалки
Используем объектно-ориентированное программирование для создания гибкой системы:
class FortuneTeller:
def __init__(self):
self.user_name = «»
self.history = []
def welcome(self):
print(»
✨ Добро пожаловать в цифровую гадалку! ✨»)
print(«-» * 40)
self.user_name = input(«Как вас зовут? «)
def choose_category(self):
print(f»
{self.user_name}, выберите категорию вопроса:»)
print(«1. 💕 Любовь»)
print(«2. 💼 Карьера»)
print(«3. 🏥 Здоровье»)
choice = input(«Ваш выбор (1-3): «)
categories = {«1»: «любовь», «2»: «карьера», «3»: «здоровье»}
return categories.get(choice, «любовь»)
def predict(self, category):
prediction = random.choice(predictions[category])
timestamp = datetime.now.strftime(«%d.%m.%Y %H:%M»)
# Создаем эффект «магического процесса»
print(»
🔮 Ворожу на кофейной гуще…»)
time.sleep(2)
print(«✨ Шары хрустальные показывают…»)
time.sleep(2)
return {
«category»: category,
«prediction»: prediction,
«timestamp»: timestamp
}
def save_prediction(self, prediction_data):
self.history.append(prediction_data)
with open(«predictions_history.json», «w», encoding=»utf-8″) as f:
json.dump(self.history, f, ensure_ascii=False, indent=2)
def show_history(self):
if not self.history:
print(»
📭 История предсказаний пуста»)
return
print(f»
📜 История предсказаний для {self.user_name}:»)
print(«-» * 40)
for item in self.history[-5:]: # Показываем последние 5
print(f»{item[‘timestamp’]} ⎻ {item[‘category’]}: {item[‘prediction’]}»)
Шаг 4: Собираем все вместе
Создаем основной цикл программы:
def main:
ft = FortuneTeller
ft.welcome
while True:
print(f»
Что желаете узнать, {ft.user_name}?»)
print(«1. Получить предсказание»)
print(«2. Посмотреть историю»)
print(«3. Выйти»)
choice = input(«Ваш выбор: «)
if choice == «1»:
category = ft.choose_category
prediction = ft.predict(category)
print(f»
🎯 Предсказание: {prediction[‘prediction’]}»)
ft.save_prediction(prediction)
elif choice == «2»:
ft.show_history
elif choice == «3»:
print(f»
До встречи, {ft.user_name}! Пусть магия всегда будет с вами! ✨»)
break
else:
print(«Пожалуйста, выберите 1, 2 или 3»)
if __name__ == «__main__»:
main
Шаг 5: Добавляем звуковые эффекты и анимацию
Для создания более атмосферной гадалки можно добавить:
def magic_effect:
symbols = [«🔮», «✨», «🌟», «💫»]
for _ in range(3):
for sym in symbols:
print(f»
{sym} Гадаю… {sym}», end=»»)
time.sleep(0.5)
Расширенные возможности для продвинутых
ИИ-гадалка с анализом настроения
from textblob import TextBlob
def analyze_mood(text):
blob = TextBlob(text)
if blob.sentiment.polarity > 0:
return «Позитивное настроение обещает удачу!»
else:
return «Не переживайте, тучи скоро рассеются»
Мобильное приложение с Kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class FortuneApp(App):
def build(self):
return FortuneLayout
Сохранение в CSV для анализа
import pandas as pd
def save_to_csv(history):
df = pd.DataFrame(history)
df.to_csv(«fortune_data.csv», index=False)
Как превратить в мобильное приложение
- Установите Kivy:
pip install kivy - Создайте файл main.py с интерфейсом
- Добавьте файл fortune.kv для дизайна
- Соберите APK через Buildozer
Идеи для улучшения
- Астропрогноз: Добавьте расчет по дате рождения
- Картинки: Используйте изображения карт Таро
- Голосовой ввод: Добавьте распознавание речи
- Совместимость: Сравнение характеров двух людей
- Бирюзовые камни: Рекомендации по талисманам
Готовый код для быстрого запуска
Сохраните весь код в файл fortune_teller.py и запустите:
python fortune_teller.py Создание программы-гадалки ౼ это не только весело, но и полезно для изучения Python. Вы освоили работу с классами, файлами, случайностями и пользовательским интерфейсом. Попробуйте модифицировать код: добавьте свои предсказания, категории или даже мини-игры!
Следующий шаг: Превратите свою гадалку в Telegram-бота или веб-приложение на Flask!