Перейти к основному содержимому

Операции

Операции — это символы и ключевые слова, с помощью которых из значений составляют выражения. В Python и языке «1С:Элемент» большинство операций совпадает.

Арифметические операции

В обоих языках используют одни и те же знаки для арифметических операций: +, -, *, /, %, **. Единственное отличие — деление нацело. В Python для него используется операция //, например, запись a // b возвращает целую часть частного. В языке «1С:Элемент» нет отдельной операции деления нацело. Вместо нее выполняют обычное деление, а затем берут у результата целую часть с помощью метода ЦелаяЧасть().

Python
a = 10
b = 4

sum = a + b # 14
difference = a - b # 6
product = a * b # 40
quotient = a / b # 2.5
remainder = a % b # 2
floor = a // b # 2
power = a ** b # 10000
«1С:Элемент»
знч А = 10
знч Б = 4

знч Сумма = А + Б // 14
знч Разность = А - Б // 6
знч Произведение = А * Б // 40
знч Частное = А / Б // 2.5
знч Остаток = А % Б // 2
знч ЦелаяЧасть = (А / Б).ЦелаяЧасть() // 2
знч Степень = А ** Б // 10000

В обоих языках часто используют сокращенную запись арифметических операций:

А += Б   // то же, что А = А + Б
А -= Б // то же, что А = А - Б
А *= Б // то же, что А = А * Б
А /= Б // то же, что А = А / Б

Операции сравнения

Операции сравнения совпадают полностью: ==, !=, <, >, <=, >=. Результат сравнения — логическое значение, и в обоих языках его можно использовать в условиях. Чтобы избежать ошибки компиляции при наборе выражений, в языке «1С:Элемент» необходимо ставить пробелы вокруг знаков > и <, в остальных случаях это необязательно.

Python
def validate_age(age):
if 0 < age <= 100:
# Проверяем условие доступа к сервису
if age >= 18:
return "Доступ разрешен"
else:
return "Доступ разрешен только с 18 лет"
else:
return "Некорректный возраст. Введите значение от 0 до 100"
«1С:Элемент»
метод ПроверитьВозраст(Возраст: Число): Строка
если 0 < Возраст и Возраст <= 100
// Проверяем условие доступа к сервису
если Возраст >= 18
возврат "Доступ разрешен"
иначе
возврат "Доступ разрешен только с 18 лет"
;
иначе
возврат "Некорректный возраст. Введите значение от 0 до 100"
;
;

Логические операции

В Python логические операции используют слова and, or, not, а в языке «1С:Элемент»и, или, не.

Python
def is_leap_year(year):
return (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0)
«1С:Элемент»
метод ЭтоВисокосный(Год: Число): Булево
возврат (Год % 400 == 0) или (Год % 4 == 0 и Год % 100 != 0)
;

Проверка типа

Для проверки типа в Python есть функция isinstance(x, type), которая возвращает True, если значение относится к указанному типу, например: isinstance("привет", str). В языке «1С:Элемент» для этого используют специальное ключевое слово это, например: "привет" это Строка.

Python
value = 10

result1 = isinstance(value, (int, float)) # True
result2 = isinstance(value, str) # False
«1С:Элемент»
знч Значение: Число|Строка = 10

знч Результат1 = Значение это Число // Истина
знч Результат2 = Значение это Строка // Ложь

Проверка «значение отсутствует» устроена по-разному. В Python для этого служит оператор is None, например: a is None. В языке «1С:Элемент» сравнивают значение с Неопределено через обычное сравнение: А == Неопределено, дополнительный оператор не нужен.

Python
def find_user(user_id):
users = {1: "Максим", 2: "Мария"}
return users.get(user_id)

def greet_user(user_id):
user = find_user(user_id)

if user is None:
message = "Пользователь не найден"
else:
message = f"Привет, {user}"

return message
«1С:Элемент»
метод НайтиПользователя(Ид: Число): Строка?
знч Пользователи = {1: "Максим", 2: "Мария"}
возврат Пользователи.ПолучитьИлиНеопределено(Ид)
;

метод ПриветствоватьПользователя(Ид: Число): Строка
знч Пользователь = НайтиПользователя(Ид)
пер Сообщение: Строка

если Пользователь == Неопределено
Сообщение = "Пользователь не найден"
иначе
Сообщение = "Привет, %Пользователь"
;

возврат Сообщение
;