Упрощённый 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()' для выхода.
pylite> 2 + 3
5
pylite> print("Hello!")
Hello!
📚 Поддерживаемые конструкции
✅ Что можно использовать:
- Переменные:
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
🤝 Вклад в проект
- Fork репозитория
- Создайте ветку для новой функции
- Добавьте тесты для ваших изменений
- Убедитесь, что все тесты проходят
- Отправьте Pull Request
💬 Получение помощи
- Discord: https://getpochi.com/discord
- Issues: https://github.com/TabbyML/pochi/issues
📄 Лицензия
MIT License - используйте PyLite свободно для обучения и проектов!
PyLite - делаем программирование доступным для каждого ребёнка! 🌈👨💻👩💻
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py-lite-edu-0.1.1.tar.gz.
File metadata
- Download URL: py-lite-edu-0.1.1.tar.gz
- Upload date:
- Size: 37.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adbe265de4b6f0dcda148d179a45aef68b4bc53ff689828bba16832eced8f322
|
|
| MD5 |
5a62ed28a1a80909d8c2f350291b0a6e
|
|
| BLAKE2b-256 |
017eeea690087947a36325c761771e93c054fbca009cfc7efd3a8e273ed61c59
|
File details
Details for the file py_lite_edu-0.1.1-py3-none-any.whl.
File metadata
- Download URL: py_lite_edu-0.1.1-py3-none-any.whl
- Upload date:
- Size: 36.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d213bb9b63021638ba8d5a8d4705ff2d6bb4f8bc3c0ee09f77e8c917a6fe0bfb
|
|
| MD5 |
6ddefcd80d8d83fd99d68c58120a3a8f
|
|
| BLAKE2b-256 |
fd03422a22e65cdc8918d9e456aefa8db2277ed0b6b158d33dd17d5201cea39a
|