Зачем вообще нужен «кристальный шар» в коде?
Что мы реализуем?
Мы напишем микро-программу, которая:
- запрашивает имя пользователя;
- генерирует одно из 10 «пророчеств»;
- делает паузу-драму, как настоящий гадательный шар;
- сохраняет историю предсказаний в текстовый файл.
Шаг 0. Подготовка окружения
Вам понадобится:
- Python 3.9+ (скачать с python.org).
- Любой редактор: VS Code, PyCharm или даже Блокнот.
- Терминал/командная строка.
Шаг 1. Минимальный скелет
Создайте файл oracle.py и вставьте базовый каркас:
import random
import time
PREDICTIONS = [
"Скоро тебя ждёт неожиданный подарок.",
"Внимательнее читай мелкий шрифт — там важная подсказка.",
"Не откладывай дела на завтра, особенно те, что требуют смелости.",
"Встреча с человеком в синем изменит твой вектор.",
"Цифра 7 принесёт удачу.",
"Проблема решится сама собой через 72 часа.",
"Ты получишь долгожданное письмо.",
"Слушай своё тело — оно подскажет, где спрятан успех.",
"Старая идея всплывёт в новом свете.",
"Путешествие не за горами."
]
def main:
name = input("Привет! Назови своё имя: ")
print(f"{name}, концентрируйся на вопросе...")
time.sleep(3)
prediction = random.choice(PREDICTIONS)
print("
🔮", prediction, "🔮")
with open("history.txt", "a", encoding="utf-8") as f:
f.write(f"{name}: {prediction}
")
if __name__ == "__main__":
main
Шаг 2. Добавляем «театральную» задержку
Чтобы создать эффект «магического шара», мы используем многоточие, «раскручивающееся» в цикле:
print("🔮 Шар думает", end="")
for _ in range(5):
time.sleep(0.6)
print(".", end="", flush=True)
print("
")
Шаг 3. Улучшаем UX: цвета и меню
Установим библиотеку colorama для Windows-совместимого цветного вывода:
pip install colorama Добавим цвета:
from colorama import Fore, Style
print(Fore.CYAN + f"{name}, концентрируйся на вопросе..." + Style.RESET_ALL)
print(Fore.YELLOW + "🔮", prediction, "🔮" + Style.RESET_ALL)
Шаг 4. Расширяем функционал
Персонализация по дате рождения
Добавим новый список предсказаний, зависящий от дня месяца:
def get_zodiac_prediction(day):
if 1 <= day <= 10:
return "Декада начала: энергия роста. Действуй!"
elif 11 <= day <= 20:
return "Середина месяца: время анализа. Подумай дважды."
else:
return "Финальная декада: подведи итоги и получи бонус."
Статистика
Добавим счётчик, сколько раз человеку выпадала каждая фраза:
from collections import Counter
def load_stats(name):
try:
with open("history.txt", encoding="utf-8") as f:
lines = [line.strip for line in f if line.startswith(name)]
predictions_only = [line.split(": ", 1)[1] for line in lines]
return Counter(predictions_only)
except FileNotFoundError:
return Counter
Шаг 5. Упаковываем в исполняемый файл
Чтобы отправить другу, который не умеет запускать .py:
- Установите pyinstaller:
pip install pyinstaller - Скомпилируйте:
pyinstaller --onefile oracle.py - Готовый exe появится в папке dist.
Шаг 6. Идеи для дальнейшего развития
- API-версия: перенесите логику на Flask и отдавайте JSON любому сайту.
- Голосовой интерфейс: подключите SpeechRecognition и pyttsx3.
- ИИ-улучшение: обучите простую модель LSTM на корпусе пословиц, чтобы предсказания не повторялись.
- Telegram-бот: 20 строк кода на python-telegram-bot, и у вас есть общедоступный оракул.
Вы потратили меньше часа, но получили полноценную программу-предсказатель, которую можно гордо показать друзьям или выложить на GitHub в портфолио. Главное, помните: всегда можно усложнить и «оживить» даже самый простой код, если добавить немного театра и UX-магии.
Удачных предсказаний и чистого кода!