Skip to main content

Упрощённый Python для обучения детей программированию

Project description

PyLite - Упрощённый Python для детей 🐍✨

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

🌟 Особенности

  • Дружелюбный синтаксис - максимально близок к настоящему Python
  • Понятные ошибки - сообщения с эмодзи и советами на русском языке
  • Интерактивный REPL - экспериментируйте с кодом прямо в терминале
  • Безопасная среда - ограничения защищают от сложных конструкций
  • Готовые модули - math, random, time для интересных проектов

🚀 Быстрый старт

Установка

# Устанавливаем из PyPI
pip install py-lite-edu

# Или клонируем из репозитория для разработки
git clone https://github.com/QueenDekim/pylite.git
cd pylite

# Запускаем
pylite

Ваша первая программа

Создайте файл hello.pyl:

def greet(name):
    print("Привет, " + name + "!")

greet("Мир")
print("Добро пожаловать в PyLite!")

Запустите её:

python -m pylite hello.pyl

Интерактивный режим

python -m pylite
🐍 Добро пожаловать в PyLite!
Режим: базовый
Наберите 'quit()' или 'exit()' для выхода.

pyl> 2 + 3
5
pyl> print("Hello!")
Hello!

Поддержка многострочных функций в интерактивном режиме

pyl> def hello(name):
...     print("Hello,", name)
...  
<function hello>
pyl> hello(str(input("Your name: ")))
Your name: Victor
Hello, Victor

📚 Поддерживаемые конструкции

✅ Что можно использовать:

  • Переменные: x = 5, name = "Анна"
  • Типы данных: числа, строки, булевы, списки, словари
  • Операторы: +, -, *, /, ==, !=, <, >, and, or, not
  • Условия: if, elif, else
  • Циклы: for, while
  • Функции: def my_function(param):
  • Классы: простые классы с методами
  • Модули: import math, from random import randint

❌ Что НЕ поддерживается (для простоты):

  • Генераторы и декораторы
  • Множественное наследование
  • break/continue в циклах
  • Сложные конструкции типа lambda, yield
  • Работа с файлами и сетью

🎮 Примеры программ

Простой калькулятор

def add(a, b):
    return a + b

def divide(a, b):
    if b == 0:
        print("Ошибка: нельзя делить на ноль!")
        return None
    return a / b

print("10 + 5 =", add(10, 5))
print("10 / 2 =", divide(10, 2))

Игра "Угадай число"

import random

secret = random.randint(1, 10)
print("Я загадал число от 1 до 10!")

for attempt in range(3):
    guess = int(input("Твоя догадка: "))
    
    if guess == secret:
        print("🎉 Поздравляю! Ты угадал!")
        break
    elif guess < secret:
        print("📈 Больше!")
    else:
        print("📉 Меньше!")
else:
    print("Число было", secret)

Работа с классами

class Pet:
    def __init__(self, name, animal_type):
        self.name = name
        self.type = animal_type
    
    def speak(self):
        if self.type == "собака":
            print(self.name + " говорит: Гав!")
        elif self.type == "кот":
            print(self.name + " говорит: Мяу!")

my_dog = Pet("Рекс", "собака")
my_cat = Pet("Мурка", "кот")

my_dog.speak()
my_cat.speak()

🔧 Встроенные возможности

Функции

  • print() - вывод на экран
  • input() - ввод от пользователя
  • len() - длина объекта
  • range() - последовательность чисел
  • str(), int(), float() - преобразование типов
  • max(), min(), sum() - работа с числами

Модули

math - математика:

import math
print(math.pi)  # 3.14159...
print(math.sqrt(16))  # 4.0

random - случайные числа:

import random
print(random.randint(1, 6))  # Бросок кубика
print(random.choice(["красный", "синий", "зелёный"]))

time - работа с временем:

import time
print("Спим 2 секунды...")
time.sleep(2)
print("Проснулись!")

🚨 Понимание ошибок

PyLite показывает дружелюбные сообщения:

📝 Ой! Ты забыл закрыть кавычки в строке 3.
🔍 Ты забыл поставить двоеточие ':' после if в строке 5.  
🚀 Переменная 'my_var' не определена. Ты забыл её создать?
📏 Слишком много уровней вложенности (больше 3). Попробуй упростить код.

🎯 Ограничения (базовый режим)

Эти ограничения помогают сосредоточиться на основах:

  • Максимум 500 строк в программе
  • Максимум 80 символов в строке
  • Глубина вложенности до 3 уровней
  • Только простые конструкции Python

Для продвинутых учеников есть расширенный режим:

python -m pylite --mode extended my_program.pyl

📖 Документация

🧪 Тестирование

# Запуск всех тестов
python run_tests.py

# Тестирование конкретного файла
python -m pylite examples/calculator.pyl

🤝 Вклад в проект

  1. Fork репозитория
  2. Создайте ветку для новой функции
  3. Добавьте тесты для ваших изменений
  4. Убедитесь, что все тесты проходят
  5. Отправьте Pull Request

📄 Лицензия

MIT License - используйте PyLite свободно для обучения и проектов!


PyLite - делаем программирование доступным для каждого ребёнка! 🌈👨‍💻👩‍💻

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-lite-edu-0.1.4.tar.gz (143.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_lite_edu-0.1.4-py3-none-any.whl (137.9 kB view details)

Uploaded Python 3

File details

Details for the file py-lite-edu-0.1.4.tar.gz.

File metadata

  • Download URL: py-lite-edu-0.1.4.tar.gz
  • Upload date:
  • Size: 143.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for py-lite-edu-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1d3eb88cf0d2740ca6621a9e5b25d369f0e0a4bc48b3e8f61de449f39247bb2c
MD5 3a84c20a751db88182e7edab6ae4dda1
BLAKE2b-256 4a81605d7e8e8f0a1e622f7537a7844ef3098fa29c29d848ab5b8197fdb0c5bd

See more details on using hashes here.

File details

Details for the file py_lite_edu-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: py_lite_edu-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 137.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for py_lite_edu-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8cddf72f32db4c2b875cc39d936ff3d8589cb88148ceb34adcc71560dae62e7a
MD5 074ca66b1d2cf91921905ac1a5f4d591
BLAKE2b-256 570fcfcd3760ae53a9dc3b3a98b63dcd240de75bf3240b4e8b366a47d215cb38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page