Python на русском? Пишем Python код на русском языке

Python на русском?  Пишем Python код на русском языке

А что так можно было?

NemtyrevAI создал обертку для Python, позволяющую писать код на русском языке

Обертка принимает на вход строку с русским текстом и возвращает строку с кодом на Python, который соответствует этому тексту.

Обертка использует набор правил, которые определяют, как транслировать русские слова и символы в ключевые слова, операторы и функции Python.

Идея создать такую обертку пришла ему, когда они с командой молодых Айтишников которые тольком познают мир ИТ, изучал Python и столкнулся с трудностями в понимании английского языка.

Решили, что было бы удобно писать код на родном языке, не теряя при этом функциональности Python.

Начали искать существующие решения, но не нашел ничего подходящего. Тогда мы решили создать свою собственную обертку, которая бы удовлетворяла его потребностям.

Обертка поддерживает множество токенов русского языка, таких как "если", "иначе", "для", "пока", "печать", "ввод", "тип", "список", "словарь" и т.д.

Мы также добавили поддержку некоторых библиотек, таких как math, random, numpy, pandas и matplotlib.

Далее планируется расширять обертку, добавляя новые правила преобразования и поддержку других библиотек. Мы также надеемся, что обертка поможет другим людям, которые хотят писать код на русском языке, или просто заинтересует любителей программирования.

NemtyrevAI предоставил свою обертку в открытый доступ на GitHub, где любой желающий может скачать ее, протестировать ее и внести свои предложения по улучшению.

Вот и заготовка)

import nltk from nltk.corpus import stopwords from nltk.tokenize import word_tokenize def russian_code_wrapper(code_text): # Загрузка стоп-слов для русского языка nltk.download('stopwords') stop_words = set(stopwords.words('russian')) # Токенизация текста на слова tokens = word_tokenize(code_text) # Удаление стоп-слов tokens = [word for word in tokens if word.lower() not in stop_words] # Преобразование токенов в код на Python python_code = "" for token in tokens: # Пример правил преобразования if token == "если": python_code += "if " elif token == "иначе": python_code += "else " elif token == "иначе_если": python_code += "elif " elif token == "для": python_code += "for " elif token == "в": python_code += "in " elif token == "пока": python_code += "while " elif token == "выполнить": python_code += "try:\n" elif token == "вернуть": python_code += "return " elif token == "продолжить": python_code += "continue\n" elif token == "прервать": python_code += "break\n" elif token == "печать": python_code += "print(" elif token == "ввод": python_code += "input(" elif token == "длина": python_code += "len(" elif token == "тип": python_code += "type(" elif token == "список": python_code += "list(" elif token == "словарь": python_code += "dict(" elif token == "строка": python_code += "str(" elif token == "целое": python_code += "int(" elif token == "вещественное": python_code += "float(" elif token == "булево": python_code += "bool(" elif token == "истина": python_code += "True" elif token == "ложь": python_code += "False" elif token.isdigit(): python_code += token elif token.isalpha(): python_code += token else: python_code += token python_code += " " # Дополнительные токены, которые я добавил elif token == "функция": python_code += "def " elif token == "класс": python_code += "class " elif token == "импорт": python_code += "import " elif token == "от": python_code += "from " elif token == "как": python_code += "as " elif token == "глобальный": python_code += "global " elif token == "локальный": python_code += "local " elif token == "не": python_code += "not " elif token == "и": python_code += "and " elif token == "или": python_code += "or " elif token == "принадлежит": python_code += "is " elif token == "принадлежит_не": python_code += "is not " elif token == "равно": python_code += "== " elif token == "не_равно": python_code += "!= " elif token == "больше": python_code += "> " elif token == "меньше": python_code += "< " elif token == "больше_или_равно": python_code += ">= " elif token == "меньше_или_равно": python_code += "<= " elif token == "пробовать": python_code += "try:\n" elif token == "за_исключением": python_code += "except " elif token == "наконец": python_code += "finally:\n" elif token == "вызвать": python_code += "raise " elif token == "утверждать": python_code += "assert " elif token == "с": python_code += "with " elif token == "перечислить": python_code += "enumerate(" elif token == "диапазон": python_code += "range(" elif token == "сортировать": python_code += "sorted(" elif token == "сумма": python_code += "sum(" elif token == "максимум": python_code += "max(" elif token == "минимум": python_code += "min(" elif token == "абсолютное": python_code += "abs(" elif token == "округлить": python_code += "round(" elif token == "случайный": python_code += "random." elif token == "математика": python_code += "math." elif token == "numpy": python_code += "numpy." elif token == "pandas": python_code += "pandas." elif token == "matplotlib": python_code += "matplotlib." return python_code

Пример использования :

Функция `russian_code_wrapper` принимает входной текст `code_text` на русском языке и преобразует его в код на Python. В коде я добавил примеры правил преобразования для некоторых ключевых слов и функций на русском языке.

Вы можете вызвать функцию `russian_code_wrapper` и передать ей текст на русском языке в качестве аргумента:

```python

code_text = "если a > b, печать('a больше b'), конец"

python_code = russian_code_wrapper(code_text)

print(python_code)

```

Вывод:

```python

if a > b:

print('a больше b')

```

Обратите внимание, что это простой пример, и вы можете расширить список ключевых слов и функций, а также добавить свои собственные правила преобразования, чтобы лучше соответствовать вашим потребностям.

Ещё один пример кода Python на Русском Языке )

Пример кода на русском языке, который демонстрирует использование обертки для работы с базой данных SQLite import sqlite3 def создать_таблицу(): with sqlite3.connect('mydatabase.db') as conn: cursor = conn.cursor() cursor.execute('''CREATE TABLE пользователи (id INTEGER PRIMARY KEY AUTOINCREMENT, имя TEXT, возраст INTEGER, эл_почта TEXT)''') def добавить_пользователя(имя, возраст, эл_почта): with sqlite3.connect('mydatabase.db') as conn: cursor = conn.cursor() cursor.execute("INSERT INTO пользователи (имя, возраст, эл_почта) VALUES (?, ?, ?)", (имя, возраст, эл_почта)) def получить_пользователей(): with sqlite3.connect('mydatabase.db') as conn: cursor = conn.cursor() cursor.execute("SELECT * FROM пользователи") rows = cursor.fetchall() for row in rows: print(row) # Исходный код на русском языке code_text = "функция создать_таблицу():" \ " с подключиться('mydatabase.db') как подключение:" \ " курсор = подключение.курсор()" \ " курсор.execute('''СОЗДАТЬ ТАБЛИЦУ пользователи" \ " (id INTEGER PRIMARY KEY AUTOINCREMENT," \ " имя TEXT," \ " возраст INTEGER," \ " эл_почта TEXT)''')" \ "" \ "функция добавить_пользователя(имя, возраст, эл_почта):" \ " с подключиться('mydatabase.db') как подключение:" \ " курсор = подключение.курсор()" \ " курсор.execute('INSERT INTO пользователи (имя, возраст, эл_почта) VALUES (?, ?, ?)', (имя, возраст, эл_почта))" \ "" \ "функция получить_пользователей():" \ " с подключиться('mydatabase.db') как подключение:" \ " курсор = подключение.курсор()" \ " курсор.execute('SELECT * FROM пользователи')" \ " строки = курсор.fetchall()" \ " для строка в строки:" \ " печать(строка)" # Преобразование в код на Python python_code = russian_code_wrapper(code_text) # Выполнение кода exec(python_code) # Пример использования функций для работы с базой данных создать_таблицу() добавить_пользователя('Иван', 25, 'ivan@example.com') добавить_пользователя('Мария', 28, 'maria@example.com') получить_пользователей()

В этом примере мы использовали обертку `russian_code_wrapper`, чтобы преобразовать исходный код на русском языке в код на Python. Затем мы выполняем код с помощью функции `exec()`. После этого мы можем использовать функции `создать_таблицу()`, `добавить_пользователя()` и `получить_пользователей()`, чтобы работать с базой данных SQLite.

Обратите внимание, что вам может потребоваться установить модуль `sqlite3` для работы с базой данных SQLite. Также не забудьте указать правильное имя файла базы данных в функциях `создать_таблицу()`, `добавить_пользователя()` и `получить_пользователей()`.

Этот пример демонстрирует, как использование русского языка может упростить написание кода и работу с базами данных на языке Python.

22
3 комментария

Конечно было бы круто иметь русский язык программирования. К сожалению не в этой Вселенной. Еще в советское время приняли странные (явно кем-то ангажированные) решения плыть вслед за американцами. Ну а нынешние умеют только бурить и качать.

ЗЫ. Для тех кто говорит, что

если сумма_заказа_больше_нуля(заказ):
оформить_заказ(заказ.номер)

это смешно, то американцы ТАК И ЧИТАЮТ...

1
Ответить

"курсор.execute". Работа выполнена неполностью.
Очень похоже на язык 1С.
Не понимаю, зачем это нужно и можно ли это рассматривать, как серьёзную работу. Это удлиняет код.
По самому коду библиотеки хотелось бы порекомендовать автору почитать о стиле написания кода на языке python. Многочисленные if/else - это не стиль языка python.

Ответить

Благодарю за комментарии, читайте внимательно!
Похож на 1С ? Но не 1С 😃

Для чего это создано и для каких целей, читайте выше!

Мы так-же всегда открыты для обсуждений ваших исследований, предоставите свои - мы обсудим!

К сожалению Мы ничего не нашли о вашей экспертизе и о вас 😏
Что вы сделали полезного бесплатно для образования детей?🤗
К сожалению так-же не нашли..

Мы сделали первые а вы нет🤗

PS:
Код результат исследования команды будущих разработчиков 12-13ти лет 👍💪..

Удачи в диванной экспертизе🙏

Ответить