rupython 1.0.4__tar.gz → 1.0.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rupython-1.0.6/PKG-INFO +230 -0
- rupython-1.0.6/README.md +223 -0
- {rupython-1.0.4 → rupython-1.0.6}/rupython/__/320/227/320/260/320/263/320/276/320/273/320/276/320/262/320/276/321/207/320/275/321/213/320/271_/320/272/320/276/320/264__.py +5 -5
- {rupython-1.0.4 → rupython-1.0.6}/rupython//320/237/321/200/320/265/320/276/320/261/321/200/320/260/320/267/320/276/320/262/320/260/321/202/320/265/320/273/321/214.py +7 -7
- rupython-1.0.6/rupython.egg-info/PKG-INFO +230 -0
- {rupython-1.0.4 → rupython-1.0.6}/setup.py +1 -1
- rupython-1.0.4/PKG-INFO +0 -24
- rupython-1.0.4/README.md +0 -17
- rupython-1.0.4/rupython.egg-info/PKG-INFO +0 -24
- {rupython-1.0.4 → rupython-1.0.6}/LICENSE +0 -0
- {rupython-1.0.4 → rupython-1.0.6}/rupython/__main__.py +0 -0
- {rupython-1.0.4 → rupython-1.0.6}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/234/320/260/321/202/320/265/320/274.py" +0 -0
- {rupython-1.0.4 → rupython-1.0.6}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/240/320/265/320/263/320/222/321/213/321/200.py" +0 -0
- {rupython-1.0.4 → rupython-1.0.6}/rupython.egg-info/SOURCES.txt +0 -0
- {rupython-1.0.4 → rupython-1.0.6}/rupython.egg-info/dependency_links.txt +0 -0
- {rupython-1.0.4 → rupython-1.0.6}/rupython.egg-info/top_level.txt +0 -0
- {rupython-1.0.4 → rupython-1.0.6}/setup.cfg +0 -0
rupython-1.0.6/PKG-INFO
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: rupython
|
3
|
+
Version: 1.0.6
|
4
|
+
Summary: Исполнитель кода Русского Питона
|
5
|
+
Description-Content-Type: text/markdown
|
6
|
+
License-File: LICENSE
|
7
|
+
|
8
|
+
Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
|
9
|
+
|
10
|
+
`pip install rupython`
|
11
|
+
|
12
|
+
Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
|
13
|
+
|
14
|
+
* Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
|
15
|
+
* Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
|
16
|
+
|
17
|
+
Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
|
18
|
+
|
19
|
+
```
|
20
|
+
assoc .крп = "Код на Русском Питоне"
|
21
|
+
ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
|
22
|
+
```
|
23
|
+
|
24
|
+
Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
|
25
|
+
|
26
|
+
### Пример кода
|
27
|
+
|
28
|
+
```
|
29
|
+
Функция НОД(*числа):
|
30
|
+
f = фун a, b: a если b == 0 иначе f(b, a % b)
|
31
|
+
Вернуть Свёртка(фун a, b: f(a, b), числа)
|
32
|
+
|
33
|
+
Функция НОК(*числа):
|
34
|
+
числа = Множ(числа)
|
35
|
+
n = n_ = Макс(числа)
|
36
|
+
числа.Удалить(n)
|
37
|
+
Пока Любое(n % m для m в числа): n += n_
|
38
|
+
Вернуть n
|
39
|
+
```
|
40
|
+
|
41
|
+
### Обзор особенностей языка
|
42
|
+
|
43
|
+
##### Основные встроенные типы данных:
|
44
|
+
|
45
|
+
* Числовые: ```Цел```, ```Вещ```, ```Компл```.
|
46
|
+
* Логический: ```Логич``` – значения ```Да``` и ```Нет```.
|
47
|
+
* Неопределённое (пустое) значение: ```Пусто```.
|
48
|
+
* Строковый (текстовый): ```Строка```.
|
49
|
+
* Последовательности: ```Список```, ```Кортеж```, ```Ряд``` (диапазон).
|
50
|
+
* Ассоциативный массив: ```Словарь```.
|
51
|
+
* Множества: ```Множ``` и ```НеизмМнож```.
|
52
|
+
* Байтовые: ```Байты``` и ```БайтМассив```.
|
53
|
+
|
54
|
+
Далее представлены примеры кода, демонстрирующие использование наиболее важных языковых конструкций.
|
55
|
+
|
56
|
+
##### Условие:
|
57
|
+
```
|
58
|
+
Если x > 0:
|
59
|
+
зн = 1
|
60
|
+
АЕсли x < 0:
|
61
|
+
зн = -1
|
62
|
+
Иначе:
|
63
|
+
зн = 0
|
64
|
+
```
|
65
|
+
|
66
|
+
##### Цикл перебора:
|
67
|
+
```
|
68
|
+
Для перем из Ряд(10):
|
69
|
+
Вывести(перем)
|
70
|
+
```
|
71
|
+
|
72
|
+
##### Цикл с предусловием:
|
73
|
+
```
|
74
|
+
Пока x < знач:
|
75
|
+
x += y
|
76
|
+
Если x == z: Продолжить
|
77
|
+
```
|
78
|
+
|
79
|
+
##### Цикл с послеусловием:
|
80
|
+
```
|
81
|
+
Повторять:
|
82
|
+
x *= z
|
83
|
+
Если x >= y: Прервать
|
84
|
+
До x > знач
|
85
|
+
```
|
86
|
+
|
87
|
+
##### Цикл со счётчиком:
|
88
|
+
```
|
89
|
+
Цикл i = 0 : i < 10 : i += 1:
|
90
|
+
Вывести(i)
|
91
|
+
```
|
92
|
+
|
93
|
+
##### Импорт:
|
94
|
+
```
|
95
|
+
Из Пакет_1 подключить Модуль_1, Модуль_2
|
96
|
+
Подключить Модуль_3 как М3
|
97
|
+
```
|
98
|
+
|
99
|
+
##### Логические операции:
|
100
|
+
```
|
101
|
+
v = не x и (y или z)
|
102
|
+
u = w в сп1 и w не в сп2
|
103
|
+
k = l это m и m это не n
|
104
|
+
```
|
105
|
+
|
106
|
+
##### Функция:
|
107
|
+
```
|
108
|
+
Функция F(a, b):
|
109
|
+
Если a == b: Вернуть Да
|
110
|
+
Иначе: Вернуть Нет
|
111
|
+
```
|
112
|
+
|
113
|
+
```
|
114
|
+
Функция Пример(парам):
|
115
|
+
Для сч из Ряд(парам):
|
116
|
+
Если парам[сч] == 0: Возврат
|
117
|
+
```
|
118
|
+
|
119
|
+
##### Генераторы
|
120
|
+
```
|
121
|
+
Функция Фиб(n):
|
122
|
+
a, b = 0, 1
|
123
|
+
Для _ из Ряд(n):
|
124
|
+
Выдать a
|
125
|
+
a, b = b, a + b
|
126
|
+
```
|
127
|
+
```
|
128
|
+
кв_ч = (сч ** 2 для сч в Ряд(1, 10))
|
129
|
+
```
|
130
|
+
|
131
|
+
##### Класс
|
132
|
+
```
|
133
|
+
Класс Пример(Другой_класс):
|
134
|
+
Функция __Подготовка__(здесь, перем = 0):
|
135
|
+
здесь.зн = перем
|
136
|
+
|
137
|
+
Объект = Пример(1)
|
138
|
+
```
|
139
|
+
|
140
|
+
##### Значение по условию
|
141
|
+
```
|
142
|
+
перем = 0 если x == зн иначе 1
|
143
|
+
```
|
144
|
+
|
145
|
+
##### Пропуск действия и удаление переменной
|
146
|
+
```
|
147
|
+
Если x == 1: Пропустить
|
148
|
+
Иначе: Удалить y
|
149
|
+
```
|
150
|
+
|
151
|
+
##### Краткое условие
|
152
|
+
```
|
153
|
+
перем = 1 если x > 0 иначе 0
|
154
|
+
```
|
155
|
+
|
156
|
+
##### Пропуск действия и удаление переменной
|
157
|
+
```
|
158
|
+
Если x == 1: Пропустить
|
159
|
+
Иначе: Удалить y
|
160
|
+
```
|
161
|
+
|
162
|
+
##### Безымянная (λ) функция
|
163
|
+
```
|
164
|
+
В_квадрат = фун x: x ** 2
|
165
|
+
```
|
166
|
+
|
167
|
+
##### Обработка исключений:
|
168
|
+
```
|
169
|
+
Попробовать:
|
170
|
+
ч = Цел(строка)
|
171
|
+
ПриИсключении ОшибкаЗначения:
|
172
|
+
Вывести('Ошибка.')
|
173
|
+
Иначе: Вывести('Сработало.')
|
174
|
+
ВКонце: Вывести('Выполнено.')
|
175
|
+
|
176
|
+
Если Тип(x) != Стр:
|
177
|
+
Бросить ОшибкаЗначения
|
178
|
+
```
|
179
|
+
|
180
|
+
##### Области видимости
|
181
|
+
```
|
182
|
+
x = 0
|
183
|
+
|
184
|
+
Функция Внешняя():
|
185
|
+
y = 1
|
186
|
+
Функция Внутренняя():
|
187
|
+
Общее x
|
188
|
+
НеМестное y
|
189
|
+
x = y
|
190
|
+
Внутренняя()
|
191
|
+
```
|
192
|
+
|
193
|
+
##### Проверка существования переменной:
|
194
|
+
```
|
195
|
+
Если $Переменная?: Вывести('Существует.')
|
196
|
+
```
|
197
|
+
|
198
|
+
##### Обёртка (декоратор) функции
|
199
|
+
```
|
200
|
+
Функция Обёртка(Ф):
|
201
|
+
Функция ФО():
|
202
|
+
Вывести('1')
|
203
|
+
Ф()
|
204
|
+
Вернуть ФО
|
205
|
+
|
206
|
+
@Обёртка
|
207
|
+
Функция Проверка(): Вывести('2')
|
208
|
+
```
|
209
|
+
|
210
|
+
##### Конструкция выбора
|
211
|
+
```
|
212
|
+
Выбрать x:
|
213
|
+
При 1: зн = '+'
|
214
|
+
При -1: зн = '-'
|
215
|
+
При _: зн = '0'
|
216
|
+
```
|
217
|
+
|
218
|
+
##### Контекстный менеджер
|
219
|
+
```
|
220
|
+
ВКонтексте Открыть('Файл.дан', 'r') как файл:
|
221
|
+
Пока стр := файл.Читать_строку():
|
222
|
+
Вывести(стр.Удалить_по_бокам())
|
223
|
+
```
|
224
|
+
|
225
|
+
##### Проверка условия
|
226
|
+
```
|
227
|
+
Функция Разделить(x, y):
|
228
|
+
Проверить y != 0, 'Деление на 0.'
|
229
|
+
Вернуть x / y
|
230
|
+
```
|
rupython-1.0.6/README.md
ADDED
@@ -0,0 +1,223 @@
|
|
1
|
+
Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
|
2
|
+
|
3
|
+
`pip install rupython`
|
4
|
+
|
5
|
+
Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
|
6
|
+
|
7
|
+
* Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
|
8
|
+
* Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
|
9
|
+
|
10
|
+
Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
|
11
|
+
|
12
|
+
```
|
13
|
+
assoc .крп = "Код на Русском Питоне"
|
14
|
+
ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
|
15
|
+
```
|
16
|
+
|
17
|
+
Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
|
18
|
+
|
19
|
+
### Пример кода
|
20
|
+
|
21
|
+
```
|
22
|
+
Функция НОД(*числа):
|
23
|
+
f = фун a, b: a если b == 0 иначе f(b, a % b)
|
24
|
+
Вернуть Свёртка(фун a, b: f(a, b), числа)
|
25
|
+
|
26
|
+
Функция НОК(*числа):
|
27
|
+
числа = Множ(числа)
|
28
|
+
n = n_ = Макс(числа)
|
29
|
+
числа.Удалить(n)
|
30
|
+
Пока Любое(n % m для m в числа): n += n_
|
31
|
+
Вернуть n
|
32
|
+
```
|
33
|
+
|
34
|
+
### Обзор особенностей языка
|
35
|
+
|
36
|
+
##### Основные встроенные типы данных:
|
37
|
+
|
38
|
+
* Числовые: ```Цел```, ```Вещ```, ```Компл```.
|
39
|
+
* Логический: ```Логич``` – значения ```Да``` и ```Нет```.
|
40
|
+
* Неопределённое (пустое) значение: ```Пусто```.
|
41
|
+
* Строковый (текстовый): ```Строка```.
|
42
|
+
* Последовательности: ```Список```, ```Кортеж```, ```Ряд``` (диапазон).
|
43
|
+
* Ассоциативный массив: ```Словарь```.
|
44
|
+
* Множества: ```Множ``` и ```НеизмМнож```.
|
45
|
+
* Байтовые: ```Байты``` и ```БайтМассив```.
|
46
|
+
|
47
|
+
Далее представлены примеры кода, демонстрирующие использование наиболее важных языковых конструкций.
|
48
|
+
|
49
|
+
##### Условие:
|
50
|
+
```
|
51
|
+
Если x > 0:
|
52
|
+
зн = 1
|
53
|
+
АЕсли x < 0:
|
54
|
+
зн = -1
|
55
|
+
Иначе:
|
56
|
+
зн = 0
|
57
|
+
```
|
58
|
+
|
59
|
+
##### Цикл перебора:
|
60
|
+
```
|
61
|
+
Для перем из Ряд(10):
|
62
|
+
Вывести(перем)
|
63
|
+
```
|
64
|
+
|
65
|
+
##### Цикл с предусловием:
|
66
|
+
```
|
67
|
+
Пока x < знач:
|
68
|
+
x += y
|
69
|
+
Если x == z: Продолжить
|
70
|
+
```
|
71
|
+
|
72
|
+
##### Цикл с послеусловием:
|
73
|
+
```
|
74
|
+
Повторять:
|
75
|
+
x *= z
|
76
|
+
Если x >= y: Прервать
|
77
|
+
До x > знач
|
78
|
+
```
|
79
|
+
|
80
|
+
##### Цикл со счётчиком:
|
81
|
+
```
|
82
|
+
Цикл i = 0 : i < 10 : i += 1:
|
83
|
+
Вывести(i)
|
84
|
+
```
|
85
|
+
|
86
|
+
##### Импорт:
|
87
|
+
```
|
88
|
+
Из Пакет_1 подключить Модуль_1, Модуль_2
|
89
|
+
Подключить Модуль_3 как М3
|
90
|
+
```
|
91
|
+
|
92
|
+
##### Логические операции:
|
93
|
+
```
|
94
|
+
v = не x и (y или z)
|
95
|
+
u = w в сп1 и w не в сп2
|
96
|
+
k = l это m и m это не n
|
97
|
+
```
|
98
|
+
|
99
|
+
##### Функция:
|
100
|
+
```
|
101
|
+
Функция F(a, b):
|
102
|
+
Если a == b: Вернуть Да
|
103
|
+
Иначе: Вернуть Нет
|
104
|
+
```
|
105
|
+
|
106
|
+
```
|
107
|
+
Функция Пример(парам):
|
108
|
+
Для сч из Ряд(парам):
|
109
|
+
Если парам[сч] == 0: Возврат
|
110
|
+
```
|
111
|
+
|
112
|
+
##### Генераторы
|
113
|
+
```
|
114
|
+
Функция Фиб(n):
|
115
|
+
a, b = 0, 1
|
116
|
+
Для _ из Ряд(n):
|
117
|
+
Выдать a
|
118
|
+
a, b = b, a + b
|
119
|
+
```
|
120
|
+
```
|
121
|
+
кв_ч = (сч ** 2 для сч в Ряд(1, 10))
|
122
|
+
```
|
123
|
+
|
124
|
+
##### Класс
|
125
|
+
```
|
126
|
+
Класс Пример(Другой_класс):
|
127
|
+
Функция __Подготовка__(здесь, перем = 0):
|
128
|
+
здесь.зн = перем
|
129
|
+
|
130
|
+
Объект = Пример(1)
|
131
|
+
```
|
132
|
+
|
133
|
+
##### Значение по условию
|
134
|
+
```
|
135
|
+
перем = 0 если x == зн иначе 1
|
136
|
+
```
|
137
|
+
|
138
|
+
##### Пропуск действия и удаление переменной
|
139
|
+
```
|
140
|
+
Если x == 1: Пропустить
|
141
|
+
Иначе: Удалить y
|
142
|
+
```
|
143
|
+
|
144
|
+
##### Краткое условие
|
145
|
+
```
|
146
|
+
перем = 1 если x > 0 иначе 0
|
147
|
+
```
|
148
|
+
|
149
|
+
##### Пропуск действия и удаление переменной
|
150
|
+
```
|
151
|
+
Если x == 1: Пропустить
|
152
|
+
Иначе: Удалить y
|
153
|
+
```
|
154
|
+
|
155
|
+
##### Безымянная (λ) функция
|
156
|
+
```
|
157
|
+
В_квадрат = фун x: x ** 2
|
158
|
+
```
|
159
|
+
|
160
|
+
##### Обработка исключений:
|
161
|
+
```
|
162
|
+
Попробовать:
|
163
|
+
ч = Цел(строка)
|
164
|
+
ПриИсключении ОшибкаЗначения:
|
165
|
+
Вывести('Ошибка.')
|
166
|
+
Иначе: Вывести('Сработало.')
|
167
|
+
ВКонце: Вывести('Выполнено.')
|
168
|
+
|
169
|
+
Если Тип(x) != Стр:
|
170
|
+
Бросить ОшибкаЗначения
|
171
|
+
```
|
172
|
+
|
173
|
+
##### Области видимости
|
174
|
+
```
|
175
|
+
x = 0
|
176
|
+
|
177
|
+
Функция Внешняя():
|
178
|
+
y = 1
|
179
|
+
Функция Внутренняя():
|
180
|
+
Общее x
|
181
|
+
НеМестное y
|
182
|
+
x = y
|
183
|
+
Внутренняя()
|
184
|
+
```
|
185
|
+
|
186
|
+
##### Проверка существования переменной:
|
187
|
+
```
|
188
|
+
Если $Переменная?: Вывести('Существует.')
|
189
|
+
```
|
190
|
+
|
191
|
+
##### Обёртка (декоратор) функции
|
192
|
+
```
|
193
|
+
Функция Обёртка(Ф):
|
194
|
+
Функция ФО():
|
195
|
+
Вывести('1')
|
196
|
+
Ф()
|
197
|
+
Вернуть ФО
|
198
|
+
|
199
|
+
@Обёртка
|
200
|
+
Функция Проверка(): Вывести('2')
|
201
|
+
```
|
202
|
+
|
203
|
+
##### Конструкция выбора
|
204
|
+
```
|
205
|
+
Выбрать x:
|
206
|
+
При 1: зн = '+'
|
207
|
+
При -1: зн = '-'
|
208
|
+
При _: зн = '0'
|
209
|
+
```
|
210
|
+
|
211
|
+
##### Контекстный менеджер
|
212
|
+
```
|
213
|
+
ВКонтексте Открыть('Файл.дан', 'r') как файл:
|
214
|
+
Пока стр := файл.Читать_строку():
|
215
|
+
Вывести(стр.Удалить_по_бокам())
|
216
|
+
```
|
217
|
+
|
218
|
+
##### Проверка условия
|
219
|
+
```
|
220
|
+
Функция Разделить(x, y):
|
221
|
+
Проверить y != 0, 'Деление на 0.'
|
222
|
+
Вернуть x / y
|
223
|
+
```
|
@@ -177,9 +177,9 @@ for классы, таблица in Встроенные_поля.items():
|
|
177
177
|
Логич_в_стр = bool.__str__
|
178
178
|
Добавить_поле(bool, '__str__', Обёртка__Логич_в_стр)
|
179
179
|
|
180
|
-
Обёртка__
|
181
|
-
|
182
|
-
Добавить_поле(type(None), '__str__', Обёртка__
|
180
|
+
Обёртка__Пусто_в_стр = lambda здесь: Пусто_в_стр(здесь).replace('None', 'Пусто')
|
181
|
+
Пусто_в_стр = type(None).__str__
|
182
|
+
Добавить_поле(type(None), '__str__', Обёртка__Пусто_в_стр)
|
183
183
|
|
184
184
|
def Проверить_существование(код, местн, общ):
|
185
185
|
try: eval(код, местн, общ)
|
@@ -196,8 +196,8 @@ def Заменить_ключи_в_словаре(словарь, замены):
|
|
196
196
|
новый.setdefault(замены[н] if н in замены.keys() else н, з)
|
197
197
|
return новый
|
198
198
|
|
199
|
-
def Свёртка(функция, перечислимое, нач_знач):
|
200
|
-
рез = нач_знач
|
199
|
+
def Свёртка(функция, перечислимое, нач_знач = None):
|
200
|
+
рез = нач_знач if нач_знач else перечислимое[0]
|
201
201
|
for эл in перечислимое: рез = функция(рез, эл)
|
202
202
|
return рез
|
203
203
|
|
@@ -8,7 +8,7 @@ import importlib as Импортование
|
|
8
8
|
Служебные_слова = {
|
9
9
|
'Да': 'True',
|
10
10
|
'Нет': 'False',
|
11
|
-
'
|
11
|
+
'Пусто': 'None',
|
12
12
|
'и': 'and',
|
13
13
|
'или': 'or',
|
14
14
|
'не': 'not',
|
@@ -16,7 +16,7 @@ import importlib as Импортование
|
|
16
16
|
'Функция': 'def',
|
17
17
|
'Класс': 'class',
|
18
18
|
'Общее': 'global',
|
19
|
-
'
|
19
|
+
'НеМестное': 'nonlocal',
|
20
20
|
'Из': 'from',
|
21
21
|
'Подключить': 'import',
|
22
22
|
'подключить': 'import',
|
@@ -41,7 +41,6 @@ import importlib as Импортование
|
|
41
41
|
'Исключение': 'except',
|
42
42
|
'ВКонце': 'finally',
|
43
43
|
'Проверить': 'assert',
|
44
|
-
'Выполнить': 'exec',
|
45
44
|
'фун': 'lambda',
|
46
45
|
'Выдать': 'yield',
|
47
46
|
'ВКонтексте': 'with',
|
@@ -70,8 +69,8 @@ import importlib as Импортование
|
|
70
69
|
'Содержимое': ( 'dir', None, False ),
|
71
70
|
'ДелОст': ( 'divmod', None, False ),
|
72
71
|
'Перечислить': ( 'enumerate', { 'перебираемое': 'iterable', 'начало': 'start' }, False ),
|
73
|
-
'
|
74
|
-
'
|
72
|
+
'ВычВыр': ( 'eval', None, False ),
|
73
|
+
'ВыпКод': ( 'exec', None, False ),
|
75
74
|
'Фильтр': ( 'filter', None, False ),
|
76
75
|
'Вещ': ( 'float', None, True ),
|
77
76
|
'Формат': ( 'format', None, False ),
|
@@ -324,9 +323,10 @@ def Прочитать_слова(чтение_строки):
|
|
324
323
|
print("Ошибка чтения кода:\n" + str(ошибка))
|
325
324
|
Ошибка_чтения_кода = True
|
326
325
|
|
327
|
-
def Выполнить_основные_замены(слова,
|
326
|
+
def Выполнить_основные_замены(слова, соответствия, не_после_точки = False):
|
328
327
|
for номер, слово in enumerate(слова):
|
329
|
-
if
|
328
|
+
if (not не_после_точки or (номер == 0 or слова[номер - 1][1] != '.')) and \
|
329
|
+
слово[0] == 1 and слово[1] in соответствия:
|
330
330
|
слова[номер] = (1, соответствия[слово[1]], слово[2])
|
331
331
|
|
332
332
|
def Заменить_встроенные_функции(слова, соответствия):
|
@@ -0,0 +1,230 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: rupython
|
3
|
+
Version: 1.0.6
|
4
|
+
Summary: Исполнитель кода Русского Питона
|
5
|
+
Description-Content-Type: text/markdown
|
6
|
+
License-File: LICENSE
|
7
|
+
|
8
|
+
Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
|
9
|
+
|
10
|
+
`pip install rupython`
|
11
|
+
|
12
|
+
Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
|
13
|
+
|
14
|
+
* Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
|
15
|
+
* Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
|
16
|
+
|
17
|
+
Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
|
18
|
+
|
19
|
+
```
|
20
|
+
assoc .крп = "Код на Русском Питоне"
|
21
|
+
ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
|
22
|
+
```
|
23
|
+
|
24
|
+
Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
|
25
|
+
|
26
|
+
### Пример кода
|
27
|
+
|
28
|
+
```
|
29
|
+
Функция НОД(*числа):
|
30
|
+
f = фун a, b: a если b == 0 иначе f(b, a % b)
|
31
|
+
Вернуть Свёртка(фун a, b: f(a, b), числа)
|
32
|
+
|
33
|
+
Функция НОК(*числа):
|
34
|
+
числа = Множ(числа)
|
35
|
+
n = n_ = Макс(числа)
|
36
|
+
числа.Удалить(n)
|
37
|
+
Пока Любое(n % m для m в числа): n += n_
|
38
|
+
Вернуть n
|
39
|
+
```
|
40
|
+
|
41
|
+
### Обзор особенностей языка
|
42
|
+
|
43
|
+
##### Основные встроенные типы данных:
|
44
|
+
|
45
|
+
* Числовые: ```Цел```, ```Вещ```, ```Компл```.
|
46
|
+
* Логический: ```Логич``` – значения ```Да``` и ```Нет```.
|
47
|
+
* Неопределённое (пустое) значение: ```Пусто```.
|
48
|
+
* Строковый (текстовый): ```Строка```.
|
49
|
+
* Последовательности: ```Список```, ```Кортеж```, ```Ряд``` (диапазон).
|
50
|
+
* Ассоциативный массив: ```Словарь```.
|
51
|
+
* Множества: ```Множ``` и ```НеизмМнож```.
|
52
|
+
* Байтовые: ```Байты``` и ```БайтМассив```.
|
53
|
+
|
54
|
+
Далее представлены примеры кода, демонстрирующие использование наиболее важных языковых конструкций.
|
55
|
+
|
56
|
+
##### Условие:
|
57
|
+
```
|
58
|
+
Если x > 0:
|
59
|
+
зн = 1
|
60
|
+
АЕсли x < 0:
|
61
|
+
зн = -1
|
62
|
+
Иначе:
|
63
|
+
зн = 0
|
64
|
+
```
|
65
|
+
|
66
|
+
##### Цикл перебора:
|
67
|
+
```
|
68
|
+
Для перем из Ряд(10):
|
69
|
+
Вывести(перем)
|
70
|
+
```
|
71
|
+
|
72
|
+
##### Цикл с предусловием:
|
73
|
+
```
|
74
|
+
Пока x < знач:
|
75
|
+
x += y
|
76
|
+
Если x == z: Продолжить
|
77
|
+
```
|
78
|
+
|
79
|
+
##### Цикл с послеусловием:
|
80
|
+
```
|
81
|
+
Повторять:
|
82
|
+
x *= z
|
83
|
+
Если x >= y: Прервать
|
84
|
+
До x > знач
|
85
|
+
```
|
86
|
+
|
87
|
+
##### Цикл со счётчиком:
|
88
|
+
```
|
89
|
+
Цикл i = 0 : i < 10 : i += 1:
|
90
|
+
Вывести(i)
|
91
|
+
```
|
92
|
+
|
93
|
+
##### Импорт:
|
94
|
+
```
|
95
|
+
Из Пакет_1 подключить Модуль_1, Модуль_2
|
96
|
+
Подключить Модуль_3 как М3
|
97
|
+
```
|
98
|
+
|
99
|
+
##### Логические операции:
|
100
|
+
```
|
101
|
+
v = не x и (y или z)
|
102
|
+
u = w в сп1 и w не в сп2
|
103
|
+
k = l это m и m это не n
|
104
|
+
```
|
105
|
+
|
106
|
+
##### Функция:
|
107
|
+
```
|
108
|
+
Функция F(a, b):
|
109
|
+
Если a == b: Вернуть Да
|
110
|
+
Иначе: Вернуть Нет
|
111
|
+
```
|
112
|
+
|
113
|
+
```
|
114
|
+
Функция Пример(парам):
|
115
|
+
Для сч из Ряд(парам):
|
116
|
+
Если парам[сч] == 0: Возврат
|
117
|
+
```
|
118
|
+
|
119
|
+
##### Генераторы
|
120
|
+
```
|
121
|
+
Функция Фиб(n):
|
122
|
+
a, b = 0, 1
|
123
|
+
Для _ из Ряд(n):
|
124
|
+
Выдать a
|
125
|
+
a, b = b, a + b
|
126
|
+
```
|
127
|
+
```
|
128
|
+
кв_ч = (сч ** 2 для сч в Ряд(1, 10))
|
129
|
+
```
|
130
|
+
|
131
|
+
##### Класс
|
132
|
+
```
|
133
|
+
Класс Пример(Другой_класс):
|
134
|
+
Функция __Подготовка__(здесь, перем = 0):
|
135
|
+
здесь.зн = перем
|
136
|
+
|
137
|
+
Объект = Пример(1)
|
138
|
+
```
|
139
|
+
|
140
|
+
##### Значение по условию
|
141
|
+
```
|
142
|
+
перем = 0 если x == зн иначе 1
|
143
|
+
```
|
144
|
+
|
145
|
+
##### Пропуск действия и удаление переменной
|
146
|
+
```
|
147
|
+
Если x == 1: Пропустить
|
148
|
+
Иначе: Удалить y
|
149
|
+
```
|
150
|
+
|
151
|
+
##### Краткое условие
|
152
|
+
```
|
153
|
+
перем = 1 если x > 0 иначе 0
|
154
|
+
```
|
155
|
+
|
156
|
+
##### Пропуск действия и удаление переменной
|
157
|
+
```
|
158
|
+
Если x == 1: Пропустить
|
159
|
+
Иначе: Удалить y
|
160
|
+
```
|
161
|
+
|
162
|
+
##### Безымянная (λ) функция
|
163
|
+
```
|
164
|
+
В_квадрат = фун x: x ** 2
|
165
|
+
```
|
166
|
+
|
167
|
+
##### Обработка исключений:
|
168
|
+
```
|
169
|
+
Попробовать:
|
170
|
+
ч = Цел(строка)
|
171
|
+
ПриИсключении ОшибкаЗначения:
|
172
|
+
Вывести('Ошибка.')
|
173
|
+
Иначе: Вывести('Сработало.')
|
174
|
+
ВКонце: Вывести('Выполнено.')
|
175
|
+
|
176
|
+
Если Тип(x) != Стр:
|
177
|
+
Бросить ОшибкаЗначения
|
178
|
+
```
|
179
|
+
|
180
|
+
##### Области видимости
|
181
|
+
```
|
182
|
+
x = 0
|
183
|
+
|
184
|
+
Функция Внешняя():
|
185
|
+
y = 1
|
186
|
+
Функция Внутренняя():
|
187
|
+
Общее x
|
188
|
+
НеМестное y
|
189
|
+
x = y
|
190
|
+
Внутренняя()
|
191
|
+
```
|
192
|
+
|
193
|
+
##### Проверка существования переменной:
|
194
|
+
```
|
195
|
+
Если $Переменная?: Вывести('Существует.')
|
196
|
+
```
|
197
|
+
|
198
|
+
##### Обёртка (декоратор) функции
|
199
|
+
```
|
200
|
+
Функция Обёртка(Ф):
|
201
|
+
Функция ФО():
|
202
|
+
Вывести('1')
|
203
|
+
Ф()
|
204
|
+
Вернуть ФО
|
205
|
+
|
206
|
+
@Обёртка
|
207
|
+
Функция Проверка(): Вывести('2')
|
208
|
+
```
|
209
|
+
|
210
|
+
##### Конструкция выбора
|
211
|
+
```
|
212
|
+
Выбрать x:
|
213
|
+
При 1: зн = '+'
|
214
|
+
При -1: зн = '-'
|
215
|
+
При _: зн = '0'
|
216
|
+
```
|
217
|
+
|
218
|
+
##### Контекстный менеджер
|
219
|
+
```
|
220
|
+
ВКонтексте Открыть('Файл.дан', 'r') как файл:
|
221
|
+
Пока стр := файл.Читать_строку():
|
222
|
+
Вывести(стр.Удалить_по_бокам())
|
223
|
+
```
|
224
|
+
|
225
|
+
##### Проверка условия
|
226
|
+
```
|
227
|
+
Функция Разделить(x, y):
|
228
|
+
Проверить y != 0, 'Деление на 0.'
|
229
|
+
Вернуть x / y
|
230
|
+
```
|
@@ -3,7 +3,7 @@ from pathlib import Path as Путь
|
|
3
3
|
|
4
4
|
Установить(
|
5
5
|
name = 'rupython',
|
6
|
-
version = '1.0.
|
6
|
+
version = '1.0.6',
|
7
7
|
description = "Исполнитель кода Русского Питона",
|
8
8
|
packages = [ 'rupython', 'rupython.Модули' ],
|
9
9
|
long_description = (Путь(__file__).parent / "README.md").read_text("UTF-8"),
|
rupython-1.0.4/PKG-INFO
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: rupython
|
3
|
-
Version: 1.0.4
|
4
|
-
Summary: Исполнитель кода Русского Питона
|
5
|
-
Description-Content-Type: text/markdown
|
6
|
-
License-File: LICENSE
|
7
|
-
|
8
|
-
Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
|
9
|
-
|
10
|
-
`pip install rupython`
|
11
|
-
|
12
|
-
Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
|
13
|
-
|
14
|
-
* Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
|
15
|
-
* Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
|
16
|
-
|
17
|
-
Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
|
18
|
-
|
19
|
-
```
|
20
|
-
assoc .крп = "Код на Русском Питоне"
|
21
|
-
ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
|
22
|
-
```
|
23
|
-
|
24
|
-
Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
|
rupython-1.0.4/README.md
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
|
2
|
-
|
3
|
-
`pip install rupython`
|
4
|
-
|
5
|
-
Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
|
6
|
-
|
7
|
-
* Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
|
8
|
-
* Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
|
9
|
-
|
10
|
-
Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
|
11
|
-
|
12
|
-
```
|
13
|
-
assoc .крп = "Код на Русском Питоне"
|
14
|
-
ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
|
15
|
-
```
|
16
|
-
|
17
|
-
Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
|
@@ -1,24 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: rupython
|
3
|
-
Version: 1.0.4
|
4
|
-
Summary: Исполнитель кода Русского Питона
|
5
|
-
Description-Content-Type: text/markdown
|
6
|
-
License-File: LICENSE
|
7
|
-
|
8
|
-
Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
|
9
|
-
|
10
|
-
`pip install rupython`
|
11
|
-
|
12
|
-
Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
|
13
|
-
|
14
|
-
* Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
|
15
|
-
* Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
|
16
|
-
|
17
|
-
Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
|
18
|
-
|
19
|
-
```
|
20
|
-
assoc .крп = "Код на Русском Питоне"
|
21
|
-
ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
|
22
|
-
```
|
23
|
-
|
24
|
-
Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|