Engee для профессионалов
Редактор кодовых ячеек
В этом разделе рассмотрим работу с редактором кодовых ячеек.
Создадим секцию с кодом и изучим ее интерфейс:
- Выполнить и перейти — выполняет код в данной секции.
- Выполнить до конца — выполняет все секции с кодом ниже выбранной секции.
- Выполнить до ячейки — выполняет все секции с кодом выше выбранной секции.
- Поменять положение результата работы кода — выбирает позицию для вывода. Имеет два варианта:
- Вывод результата справа — выводит результат справа для конкретной секции.
- Спрятать вывод результата — прячет выбор результата для конкретной секции.
- Маска — добавляет маску для выбранной кодовой ячейки (подробнее см. Маски кодовых ячеек).
- Переместить ниже — перемещает секцию на одну вниз.
- Переместить выше — перемещает секцию на одну вверх.
- Копировать — копирует секцию.
- Вставить — вставляет секцию.
- Удалить — удаляет секцию.
В кодовой ячейке также можно выполнить выделенный участок кода (щелкнув правой кнопкой мыши по выделенной строке или нажав комбинацию клавиш Shift+F7) и выполнить выделенное:
Запуск и остановка скриптов
Для запуска или остановки скрипта нажмите кнопку Запустить скрипт или Остановить выполнение. Кнопки находятся на панели запуска скрипта:
Чтобы запустить секцию с кодом, нажмите на кнопку Выполнить. Результат отобразится ниже под секцией:
Можно свернуть вывод исполнения кода в более компактную форму в случае, если он занимает слишком много места. Для этого воспользуйтесь кнопкой Ограничить вывод
:
Чтобы вернуть вывод в прежнее состояние используйте кнопку Раскрыть вывод
.
Чтобы очистить результаты выполнения секций с кодом в скрипте, нажмите на иконку Очистить результаты на панели запуска скрипта.
Сохранение скрипта
Чтобы сохранить скрипт, нажмите иконку Сохранить на панели запуска скрипта.
Маски кодовых ячеек
Для более удобной параметризации и наглядного представления кода зачастую используются интерактивные элементы управления. Ими могут выступать различные поля ввода данных, списки, слайдеры и т.д. В Engee такие элементы реализуются в редакторе скриптов
с помощью масок кодовых ячеек.
Маска кодовых ячеек — это инструмент, который превращает переменные в кодовых ячейках скриптов Engee в интерактивные элементы управления. Наложение маски позволяет скрыть код ячеек с сохранением их работоспособности.
Создание маски кодовой ячейки с помощью интерфейса редактора
Для создания маски кодовой ячейки наведите курсор на кодовую ячейку и в панели инструментов выберите Маска и Добавить поле:
Добавление поля откроет интерактивное меню. В зависимости от типа поля, меню добавления меняет свои опции (меняются доступные типы переменной и/или появляются дополнительные настройки). Всего доступно четыре типа полей:
- Выпадающий список;
- Поле ввода;
- Слайдер;
- Markdown.
Для редактирования наложенной маски наведите на нее курсор мыши и нажмите иконку
. Поскольку код маскированных ячеек является полностью рабочим, можно редактировать не только маску, но и код ячейки.
Для добавления нового поля, скрытия кода или скрытия маски повторно воспользуйтесь контекстным меню маски
.
Рассмотрим более подробно каждый тип полей.
Выпадающий список
Выпадающий список — это список опций с выбором одного варианта. При нажатии на выпадающий список пользователь должен выбрать нужный вариант.
✏️Задание 1
Создайте выпадающий список, из которого пользователь может выбрать одно из трех значений переменной x: 1, 2 или 3. Затем возведите в квадрат выбранное значение переменной x.
- Создайте кодовую ячейку. В панели инструментов выберите пункт Маска -> Добавить поле.
- В открывшемся диалоговом окне задайте следующие значения параметров:
- Тип поля —
Выпадающий список; - Название переменной —
x; - Тип переменной —
raw(этот тип позволяет вводить любые данные, в том числе и числовые); - Параметры раскрывающегося списка —
1,2и3(чтобы добавить поля для ввода второго и третьего параметров, нажмите Добавить параметр).
- Тип поля —
- Нажмите кнопку Сохранить. В результате в кодовой ячейке появится следующий код:
x = 1 # @param [1,2,3] {type:"raw"}. Справа от нее будет располагаться маска с выпадающим списком. - Нажмите клавишу Enter, чтобы добавить вторую строку в кодовую ячейку. Введите во второй строке код, который возводит переменную
xв квадрат и присваивает результат переменнойy. - Запустите выполнение кодовой ячейки, выбирая из выпадающего списка разные значения переменной
x. - В меню кодовой ячейки выберите Маска -> Скрыть код. В результате на экране будет видна только маска, код окажется скрытым. Нажав на кнопку Показать код под маской, вы можете вернуться в режим одновременного просмотра кода и маски.
Решение
Код и маска одновременно:
x = 3 # @param [1,2,3] {type:"raw"}
y = x^2
Маска со скрытым кодом:
x = 3 # @param [1,2,3] {type:"raw"}
y = x^2
Поле ввода
Поле ввода — это окно для ввода данных.
✏️Задание 2
Создайте два поля для ввода значений сторон прямоугольника a и b. Затем вычислите значение площади прямоугольника S, равное произведению a и b:
- Создайте новую кодовую ячейку. В панели инструментов выберите пункт Маска -> Добавить поле.
- В открывшемся диалоговом окне задайте следующие значения параметров:
- Тип поля —
Поле ввода; - Название переменной —
a; - Тип переменной —
number(этот тип позволяет вводить числовые значения).
- Тип поля —
Нажмите кнопку Сохранить.
- Во второй строке кодовой ячейки добавьте еще одно поле ввода. Значение параметра Название переменной задайте равным
b. Остальные параметры задайте так же, как в первом поле ввода. - В третьей строке кодовой ячейки введите код, который вычисляет произведение переменных
aиbи присваивает результат переменнойS. - Запустите выполнение кодовой ячейки, задавая разные значения переменных
aиb. - В меню кодовой ячейки выберите Маска -> Скрыть код. В результате на экране будет видна только маска, код окажется скрытым.
Решение
Код и маска одновременно:
a = 4 # @param {type:"number"}
b = 5 # @param {type:"number"}
S = a*b
Маска со скрытым кодом:
a = 4 # @param {type:"number"}
b = 5 # @param {type:"number"}
S = a*b
Слайдер
Слайдер — это представление ползунка (слайдера) с выбором значений из заданного диапазона. Выбор значения из диапазона реализован перемещением ползунка по шкале.
✏️Задание 3
Создайте слайдер, с помощью которого пользователь задает температуру в градусах Цельсия C. Затем пересчитайте введенное значение температуры в градусы Фаренгейта F:
- Создайте новую кодовую ячейку. В панели инструментов выберите пункт Маска -> Добавить поле.
- В открывшемся диалоговом окне задайте следующие значения параметров:
- Тип поля —
Слайдер; - Название переменной —
C; - Минимум —
0; - Максимум —
100; - Шаг —
1.
- Тип поля —
Нажмите кнопку Сохранить.
- Во второй строке кодовой ячейки введите код, который переводит градусы Цельсия в градусы Фаренгейта по формуле:
- Запустите выполнение кодовой ячейки, задавая разные значения переменной
C. - В меню кодовой ячейки выберите Маска -> Скрыть код. В результате на экране будет видна только маска, код окажется скрытым.
Решение
Код и маска одновременно:
C = 46 # @param {type:"slider",min:0,max:100,step:1}
F = C * 9/5 + 32
Маска со скрытым кодом:
C = 46 # @param {type:"slider",min:0,max:100,step:1}
F = C * 9/5 + 32
Markdown
Markdown — это представление разметки на языке Markdown для реализации кодовых масок.
Создание масок с помощью кода на языке Julia
Примечание
Здесь описаны некоторые особенности синтаксиса маскированных ячеек, которые могут быть полезны в вашей практике. Рекомендуем ознакомиться с разделом даже в том случае, если вы не планируете создавать маски вручную.
Для создания масок вручную нужно самостоятельно воссоздать синтаксис, состоящий из:
- Имени элемента управления. Некоторые из элементов имеют свои параметры для настройки поведения;
- Комментария
#и параметра, начинающегося с@.
Элементы управления масок кодовых ячеек уже описаны выше, их всего четыре. Для ручного создания каждого элемента используется свой собственный подход. Рассмотрим примеры для каждого из них:
Выпадающий список
dropdown — это выпадающий список опций с выбором одного варианта. При нажатии на выпадающий список пользователь выбирает нужный вариант.
string— тип выпадающего списка, который позволяет выбрать одну из заранее определенных строковых опций. Бывает двух подтипов —editableиnot_editable:
string_editable — подтип выпадающего списка, который позволяет вводить и редактировать текст.
Пример:
dropdown_string_editable = "test1" # @param ["test1", "test2", "test3"] {allow-input:true}
string_not_editable — подтип выпадающего списка, который не позволяет вводить и редактировать текст.
Пример:
dropdown_string_not_editable = "test2" # @param ["test1", "test2", "test3"]
raw— это тип выпадающего списка, который позволяет использовать произвольные и нестандартные данные в качестве опций. В отличие от стандартного выпадающего списка, который обычно содержит только строки,rawможет включать сложные структуры данных, такие как числа, списки, объекты и т.д.
Также имеет два подтипа: raw_editable — с возможностью редактирования вводимых данных и raw_not_editable — без возможности редактирования.
Примеры:
dropdown_raw_editable = 1 # @param [1, "input_raw", "false", '"string"'] {type:"raw", allow-input:true}
dropdown_raw_not_editable = 1 # @param [1, "input_raw", "false", '"string"'] {type:"raw"}
Поле ввода
input — это окно ввода данных.
Можно использовать различные типы полей ввода:
boolean— это тип ввода, который позволяет выбирать между двумя значениями:True(истина) илиFalse(ложь).
Пример:
input_boolean = False # @param {type:"boolean"}
date— это тип ввода, который позволяет выбрать дату из календаря.
Пример:
input_date = "2025-08-20" # @param {type:"date"}
integer— это тип ввода, который позволяет вводить только целые числа. Введенные в маске значения будут отражены в коде и наоборот.
Пример:
input_integer = 123 # @param {type:"integer"}
number— это тип ввода, который позволяет вводить числовые значения (включая дробные числа).
Пример:
input_number = 10.0 # @param {type:"number"}
raw— это тип ввода, который позволяет вносить произвольные данные любого типа данных (строки, списки, словари и другие объекты).
Пример:
input_raw = input_string # @param {type:"raw"}
-
string— это тип ввода, который позволяет вводить текстовые данные.Пример:
input_string = "text" # @param {type:"string"}
Слайдер
slider — это представление ползунка (слайдера) с выбором значений из заданного диапазона. Выбор значения из диапазона реализован перемещением ползунка по шкале.
slider_integer— тип слайдера, который позволяет выбирать только целые значения в заданном диапазоне.
Пример:
slider_integer = 2 # @param {type:"slider", min:1, max:5, step:1}
slider_number— тип слайдера, который позволяет выбирать значения, включая дробные числа, в заданном диапазоне.
Пример:
slider_number = 0.0346734 # @param {type:"slider", min:-1, max:1, step:0.00000001}
Markdown
markdown — это представление разметки на языке Markdown для реализации кодовых масок.
С помощью кодовой маски @markdown реализуются:
- заголовки:
# @markdown # Заголовок первого уровня
# @markdown ## Заголовок второго уровня
- таблицы:
# @markdown | Опция | Описание |
# @markdown | ----- | -------- |
# @markdown | текст | текст |
- и другие элементы форматирования, описанные в Главе 01. "Редактор текстовых ячеек".
✏️Задание 4
С помощью кода на языке Julia создайте поле ввода и слайдер. С их помощью введите массу тела человека и его рост. Затем рассчитайте индекс массы тела (ИМТ) по формуле
где — масса тела в килограммах; — рост в метрах.
Затем сделайте вывод, имеет ли человек избыточный вес. Если , то считается, что вес в норме. Если , то вес выше нормы.
- Создайте новую кодовую ячейку. Создайте поле ввода, в котором вводится значение переменной
масса. Тип ввода —number. - Создайте слайдер, с помощью которого вводится значение переменной
рост. Пусть минимальное значение будет равно0.6м, максимальное значение —2.2м, шаг —0.01м. - Введите выражение для расчета значения ИМТ
Iпо приведенной выше формуле. - Проверьте условие: если
I < 25, то с помощью командыprintвыведите на экран текстовое сообщениеВес в норме. В противном случае выведите сообщениеВес выше нормы. - Запустите выполнение кодовой ячейки, задав значение массы
77кг, а роста —1.8м.
Решение
масса = 77 # @param {type:"number"}
рост = 1.8 # @param {type:"slider", min:0.6, max:2.2, step:0.01}
I = масса/рост^2;
if I < 25
print("Вес в норме")
else
print("Вес выше нормы")
end