Перейти к содержанию

Базовые операции

На языке Выражений (Блок "Выражение") доступны следующие базовые операции над объектами:

  • Сложение: <Выражение 1>+<Выражение 2>
  • Вычитание: <Выражение 1>-<Выражение 2>
  • Умножение: <Выражение 1>*<Выражение 2>
  • Деление
    • Простое деление: <Выражение 1>/<Выражение 2>
    • Получение остатка от деления: <Выражение 1>%<Выражение 2>
    • Получение целой части от деления: <Выражение 1>//<Выражение 2>
  • Возведение в степень: <Выражение> [ ** | ^ ] <Число>
  • Фактор - отрицательное значение объекта: -<Выражение>
  • Сравнение: <Выражение 1> [ < | <= | > | >= | == | != ] <Выражение 2>
  • Инверсия - логическое "не": not <Выражение 1>
  • Конъюнкция - логическое "и": <Выражение 1> and <Выражение 2>
  • Дизъюнкция - логическое "или": <Выражение 1> or <Выражение 2>

Грамматика операций

Сложение

<Выражение 1> + <Выражение 2>
Операнды Описание Пример
Целое число + Целое число = Целое число 2 + 2 = 4
Целое число + Число с плавающей точкой = Число с плавающей точкой 2 + 2.7 = 4.7
Целое число + Строка = Строка Целое число превращается в строку и происходит суммирование строк. 2 + 'String' = '2String'
Целое число + Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит сложение. 2 + True = 3
Целое число + Дата = Дата К дате добавляется <Целое число> дней. 2 + 01.01.2022 = 03.01.2022
Целое число + Пустой элемент = Целое число Пустой элемент приравнивается к нулю и происходит сложение. 2 + Null = 2
Число с плавающей точкой + Число с плавающей точкой = Число с плавающей точкой 2.7 + 3.3 = 6.0
Число с плавающей точкой + Строка = Строка Число с плавающей точкой превращается в строку и происходит суммирование строк. 'str' + 0.1415 = 'str0.1415'
Число с плавающей точкой + Логический тип = Число с плавающей точкой Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит сложение. 4.2 + True = 5.2
Число с плавающей точкой + Дата = Дата К дате добавляется округленное до ближайшего целого <Число с плавающей точкой> дней. 10.7 + 01.01.2022 = 12.01.2022
Число с плавающей точкой + Пустой элемент = Число с плавающей точкой Пустой элемент приравнивается к нулю и происходит сложение. 5.5 + Null = 5.5
Строка + Строка = Строка 'foo' + 'bar' = 'foobar'
Строка + Логический тип = Строка Логический тип переводится в строку (True в 'True', False в 'False') и происходит сложение строк. 'not' + True = 'notTrue'
Строка + Дата = Строка Дата преобразуется в строку и происходит сложение строк. 01.01.2001 + 'Year' = '01.01.2001Year'
Строка + Пустой элемент = Строка Пустой элемент приравнивается к пустой строке и происходит сложение строк. 'Text' + Null = 'Text'
Логический тип + Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит сложение двух целых чисел. True + True = 2
Логический тип + Дата = Дата Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит сложение целого числа и даты. True + 31.12.2021 = 01.01.2022
Логический тип + Пустой элемент = Логический тип Пустой элемент игнорируется и возвращается значение логического типа. False + Null = False
Дата + Дата = Ошибка!

Сложение двух дат вызывает ошибку.

Ошибка

Дата + Пустой элемент = Дата Пустой элемент приравнивается к нулю и происходит сложение даты и целого числа. Null + 31.12.2021 = 31.12.2021

Вычитание

<Выражение 1> - <Выражение 2>   
Операнды Описание Пример
Целое число - Целое число = Целое число 2 - 1 = 1
Целое число - Число с плавающей точкой = Число с плавающей точкой 3.14 - 3 = 0.14
Целое число - Строка = Ошибка!

Вычитание строки вызывает ошибку.

Ошибка

Целое число - Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит вычитание. 2 - True = 1
Целое число - Дата = Ошибка!Дата - Целое число = Дата Вычитать число можно только из даты. Из даты вычитается <Целое число> дней. 02.01.2020 - 1 = 01.01.2020
Целое число - Пустой элемент = Целое число Пустой элемент приравнивается к нулю и происходит вычитание. 2 - Null = 2
Число с плавающей точкой - Число с плавающей точкой = Число с плавающей точкой 3.1415 - 2.1 = 1.015
Число с плавающей точкой - Строка = Строка

Вычитание строки вызывает ошибку.

Ошибка

Число с плавающей точкой - Логический тип = Число с плавающей точкой Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит вычитание. 2.7 - True= 1.7
Число с плавающей точкой - Дата = Ошибка!Дата - Число с плавающей точкой = Дата Вычитать число можно только из даты. Из даты вычитается округленное до ближайшего целого <Число с плавающей точкой> дней. 02.02.2020 - 2.7 = 31.01.2020
Число с плавающей точкой - Пустой элемент = Число с плавающей точкой Пустой элемент приравнивается к нулю и происходит вычитание. 2.7 - Null = 2.7
Строка - Строка = Ошибка!

Вычитание строки вызывает ошибку.

Ошибка

Строка - Логический тип = Ошибка! p style="color:red;">Вычитание логического типа элемента вызывает ошибку.

Ошибка

Строка - Дата = Ошибка!

Вычитание даты вызывает ошибку.

Ошибка

Строка - Пустой элемент = Ошибка!

Вычитание пустого элемента вызывает ошибку.

Ошибка

Логический тип - Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит вычитание двух целых чисел. False - True = -1
Логический тип - Дата = Ошибка!

Вычитание даты вызывает ошибку.

Ошибка

Логический тип - Пустой элемент = Ошибка!

Вычитание пустого элемента вызывает ошибку.

Ошибка

Дата - Дата = Ошибка!

Вычитание даты вызывает ошибку.

Ошибка

Дата - Пустой элемент = Ошибка!

Вычитание пустого элемента вызывает ошибку.

Ошибка

Дата - Логический тип - Дата Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит вычитание целого числа из даты. 01.01.2022 - False = 01.01.2022

Умножение

<Выражение 1> * <Выражение 2>   
Операнды Описание Пример
Целое число * Целое число = Целое число 6 * 5 = 30
Целое число * Число с плавающей точкой = Число с плавающей точкой 2 * 2.2 = 4.4
Целое число * Строка = Строка Происходит дублирование строки <Целое число> раз. 5 * 'ta' = 'tatatatata'
Целое число * Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит умножение. 10 * False = 0
Целое число * Дата = Ошибка!

Умножение даты вызывает ошибку.

Ошибка

Целое число * Пустой элемент = Целое число При умножении на пустой элемент всегда получится ноль. 5 * Null = 0
Число с плавающей точкой * Число с плавающей точкой = Число с плавающей точкой 2.1 * 2.5 = 5.25
Число с плавающей точкой * Строка = Строка Происходит дублирование строки <Число с плавающей точкой>, округленное до ближайшего целого раз. 2.4 * 'foo' = 'foofoo'
Число с плавающей точкой * Логический тип = Число с плавающей точкой Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит умножение. 3.14 * True = 3.14
Число с плавающей точкой * Дата = Ошибка!

Умножение даты вызывает ошибку.

Ошибка

Число с плавающей точкой * Пустой элемент = Целое число При умножении на пустой элемент всегда получится ноль. 3.14 * Null = 0
Строка * Строка = Ошибка!

Перемножение двух строк вызывает ошибку.

Ошибка

Строка * Логический тип = Строка Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит дублирование строки (итогом будет либо пустая строка, либо та же самая строка без изменений). 'foo' * False = ''
Строка * Дата = Ошибка!

Умножение даты вызывает ошибку.

Ошибка

Строка * Пустой элемент = Целое число При умножении на пустой элемент всегда получится ноль. 'foo' * Null = 0
Логический тип * Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит умножение. True * False = 0
Логический тип * Дата = Дата Логический тип работает как "маска" в логическом умножении. Итогом будет либо 01.01.0001 (минимальная дата для языка Python), либо исходная дата. 01.01.2020 * True = 01.01.2020
Логический тип * Пустой элемент = Логический тип При умножении на пустой элемент всегда получится ноль. True * Null = 0
Дата * Дата = Ошибка!

Перемножение дат вызывает ошибку

Ошибка

Дата * Пустой элемент = Целое число При умножении на пустой элемент всегда получится ноль. 01.01.2020 * Null = 0

Деление

  • Простое деление: <Выражение 1> / <Выражение 2>
  • Получение остатка от деления: <Выражение 1> % <Выражение 2>
  • Получение целой части от деления: <Выражение 1> // <Выражение 2>

Деление на False

Если производить деление на False, то это повлечет за собой ошибку деления на ноль.

Операнды Описание Пример
Целое число / Целое число = Число с плавающей точкой 4 / 2 = 2.0
Целое число / Число с плавающей точкой = Число с плавающей точкой 5 / 2.5 = 2.0
Целое число / Строка = Ошибка!

Деление строки вызывает ошибку.

Ошибка

Целое число / Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит деление. 1 / True = 1
Целое число / Дата = Ошибка!

Деление даты вызывает ошибку.

Ошибка

Целое число / Пустой элемент = Пустой элемент При делении на пустой элемент образуется пустой элемент. 10 / Null = Null
Число с плавающей точкой / Число с плавающей точкой = Число с плавающей точкой 12.1 / 2.5 = 4.84
Число с плавающей точкой / Строка = Ошибка!

Деление строки вызывает ошибку.

Ошибка

Число с плавающей точкой / Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит деление.

Ошибка

Число с плавающей точкой / Дата = Ошибка!

Деление даты вызывает ошибку.

Ошибка

Число с плавающей точкой / Пустой элемент = Пустой элемент При делении на пустой элемент всегда образуется пустой элемент. 3.14 / Null = Null
Строка / Строка = Ошибка!

Деление строки вызывает ошибку.

Ошибка

Строка / Логический тип = Ошибка!

Деление строки вызывает ошибку.

Ошибка

Строка / Дата = Ошибка!

Деление строки вызывает ошибку.

Ошибка

Строка / Пустой элемент = Пустой элемент При делении на пустой элемент образуется пустой элемент. 'foo' / Null = Null
Логический тип / Логический тип = Целое число Логический тип превращается в целое число (0 - False, 1 - True), после чего происходит деление. True / True = 1
Логический тип / Дата = Ошибка!

Деление даты вызывает ошибку.

Ошибка

Логический тип / Пустой элемент = Пустой элемент При делении на пустой элемент образуется пустой элемент. True / Null = Null
Дата / Дата = Ошибка!

Деление даты вызывает ошибку.

Ошибка

Дата / Пустой элемент = Пустой элемент При делении на пустой элемент образуется пустой элемент. 01.01.2020 / Null = Null
Пустой элемент / Число с плавающей точкой = Целое число При делении пустого элемента образуется ноль. Null / 3.14 = 0
Пустой элемент / Целое число = Целое число При делении пустого элемента всегда образуется ноль. Null / 10 = 0
Пустой элемент / Строка = Целое число При делении пустого элемента всегда образуется ноль. Null / 'foo' = 0
Пустой элемент / Логический тип = Целое число При делении пустого элемента всегда образуется ноль (даже в случае деления на False). Null / True = 0
Пустой элемент / Дата = Целое число При делении пустого элемента всегда образуется ноль. Null / 01.01.2020 = 0

Возведение в степень

<Выражение> [ ** | ^ ] <Число>   
Операнды Описание Пример
<Выражение> ^,** <Число> Возведение в степень представляет собой перемножение <Выражение> <Число> раз 5 ^ 2 = 125 или 5 ** 2 = 125

<Выражение> и <Число> могут иметь типы:

  • Целое число
  • Число с плавающей точкой
  • Логический тип

Фактор

- <Выражение>   
Операнды Описание Пример
[ - ] <Выражение> Операция представляет собой умножение <Выражение> на целое число -1. -True = -1

Сравнение

<Выражение 1> [ < | <= | > | >= | == | != ] <Выражение 2> --> Логический тип
Операнды Описание Пример
<Выражение 1> < <Выражение 2> Не зависимо от операндов, результатом сравнения всегда будет логический тип. 1 < 2 = True
<Выражение 1> <= <Выражение 2> Не зависимо от операндов, результатом сравнения всегда будет логический тип. 1 <= 2 = True
<Выражение 1> > <Выражение 2> Не зависимо от операндов, результатом сравнения всегда будет логический тип. 1 > 2 = False
<Выражение 1> >=<Выражение 2> Не зависимо от операндов, результатом сравнения всегда будет логический тип. 1 >= 2 = False
<Выражение 1> ==<Выражение 2> Не зависимо от операндов, результатом сравнения всегда будет логический тип. 1 == 2 = False
<Выражение 1> != <Выражение 2> Не зависимо от операндов, результатом сравнения всегда будет логический тип. 1 != 2 = True

Инверсия

[ not | не ] <Выражение 1> --> Логический тип

Любые выражения, отличные от False, 0 или Null являются истиной, и следовательно, результатом будет False (для всех исключений результатом будет True).

Операнды Описание Пример
not,не <Выражение 1> Не зависимо от операндов, результатом инверсии всегда будет логический тип. not 1 = False

Конъюнкция

<Выражение 1> [ and | и ] <Выражение 2>  --> Логический тип
  • Любые выражения, отличные от False, 0 или Null являются истиной.
  • В связи с особенностью реализации, русский вариант конъюнкции и обязательно должен разделяться пробелами от операндов.
Операнды Описание Пример
<Выражение 1> and,и <Выражение 2> Не зависимо от операндов, результатом конъюнкции всегда будет логический тип. 'foo' and 2 = True

Дизъюнкция

<Выражение 1> [ or | или ] <Выражение 2>  --> Логический тип

Любые выражения, отличные от False, 0 или Null являются истиной.

Операнды Описание Пример
<Выражение 1> or,или <Выражение 2> Не зависимо от операндов, результатом дизъюнкции всегда будет логический тип. False or 0 = False

Присваивание

<Выражение 1> **[ = ]** <Выражение 2>  

Доступно только для типов <Объект> и <Ряд>

Операнды Описание Пример
<Выражение 1> = <Выражение 2> Присваивание значения, полученного в <Выражение 2> в <Выражение 1>.