Типы данных
В любом языке программирования каждое значение относится к некоторому типу: числа — к одному типу, текст — к другому, списки — к третьему. В Python и языке «1С:Элемент» базовые типы очень похожи.
Числа
В Python целые числа относятся к типу int, а дробные — к типу float. В языке «1С:Элемент» целые и дробные числа — это один тип Число.
a = 3 # int
b = 3.14 # float
знч А = 3 // Число
знч Б = 3.14 // Число
Оба языка поддерживают генерацию случайных чисел. Для получения случайного числа в Python необходимо подключить встроенный модуль random. Чтобы получить случайное целое число от a до b (включая оба числа), используют функцию random.randint(a, b). Например, random.randint(1, 10) сгенерирует целое число от 1 до 10 включительно. Для числа с плавающей точкой от 0.0 до 1.0 используют функцию random.random(). В языке «1С:Элемент» для генерации случайных чисел используется тип СлучайныйГенератор. С помощью его методов СлучайноеЦелое(От, До) и СлучайноеЧисло(От, До) можно получить случайное число в заданном диапазоне, не включая верхнюю границу. Так, выражение новый СлучайныйГенератор().СлучайноеЦелое(1, 11) вернет целое число от 1 до 10 включительно.
import random
# Случайное целое число от 1 до 10 включительно
a = random.randint(1, 10)
# Случайное число с плавающей запятой от 0.0 до 1.0
b = random.random()
// Случайное целое число от 1 до 10 включительно
знч А = новый СлучайныйГенератор().СлучайноеЦелое(1, 11)
// Случайное число с плавающей запятой от 0.0 до 1.0
знч Б = новый СлучайныйГенератор().СлучайноеЧисло()
Чтобы задать минимально и максимально возможные числа, в Python используют специальные значения «минус бесконечность» ('-inf') и «плюс бесконечность» ('inf'). В языке «1С:Элемент» вместо «минус бесконечности» используют число –264, которое меньше любого возможного числа в диапазоне допустимых значений. Соответственно, аналогом «плюс бесконечности» выступает число 264.
def find_maximum(numbers):
# Если список пустой, возвращается None
if not numbers:
return None
# В качестве начального значения
# берем самое маленькое из возможных значений
max_value = float('-inf')
for num in numbers:
if num > max_value:
max_value = num
return max_value
метод НайтиМаксимум(Числа: Массив<Число>): Число?
// Если массив пустой, возвращается Неопределено
если Числа.Пусто()
возврат Неопределено
;
// В качест ве начального значения
// берем самое маленькое из возможных значений
пер Максимум = -(2 ** 64)
для Число из Числа
если Число > Максимум
Максимум = Число
;
;
возврат Максимум
;
Строки
Текстовые значения в Python относятся к типу str, а в языке «1С:Элемент» — к типу Строка. Записываются они одинаково — в кавычках, например "текст".
В обоих языках строки неизменяемы. Это значит, что методы обработки строк не меняют исходную строку, а возвращают новую. Поэтому запись вроде s.replace(a, b) (замена подстроки) в Python не превращает строку s в другую строку — чтобы получить результат, его нужно сохранить в новую переменную. В языке «1С:Элемент» действует то же правило — метод возвращает новую строку, а старая остается прежней.
Длину строки в Python определяют с помощью функции len(s). В языке «1С:Элемент» для этого используют метод Длина().
text = "Привет, мир!"
length = len(text) # 12
знч Текст = "Привет, мир!"
знч Длина = Текст.Длина() // 12
Подставить значение переменной в строку в Python можно через f-строку: f"Привет, {имя}". В языке «1С:Элемент» для этого используют два разных символа, в зависимости от того, что именно нужно получить в результате. Символ % подставляет значение переменной как есть — это удобно там, где строка работает как идентификатор или имя: "Колонка%Номер". Символ $ подставляет представление — то, как значение выглядит для пользователя: "Ваш заказ № $Номер". Например, число 1000 в первом случае окажется в строке как 1000, а во втором — как 1 000 (с пробелом-разделителем разрядов).
user_name = "Иван"
message = f"Привет, {user_name}!"
знч ИмяПользователя = "Иван"
знч Сообщение = "Привет, %ИмяПользователя!"
Когда требуется изменить строку, в Python используют метод replace. Так, вызов s.replace(a, b) вернет строку, в которой все вхождения a заменены на b. В языке «1С:Элемент» этому методу соответствует Заменить(Образец, Замена). Для определения количества вхождений одной строки в другую в Python используют метод count, а в языке «1С:Элемент» — КоличествоВхождений().
text = "Я изучаю Python"
new_text = text.replace("Python", "1С:Элемент")
знч Текст = "Я изучаю Python"
знч НовыйТекст = Текст.Заменить("Python", "1С:Элемент")
Чтобы разби ть строку на части по разделителю, в Python применяют метод split, а в языке «1С:Элемент» — Разделить().
text = "яблоко,банан,груша,апельсин"
# Разбиваем строку по запятым
fruits = text.split(",")
# Результат: ['яблоко', 'банан', 'груша', 'апельсин']
знч Текст = "яблоко,банан,груша,апельсин"
// Разбиваем строку по запятым
знч Фрукты = Текст.Разделить(",")
// Результат: ["яблоко", "банан", "груша", "апельсин"]
Логические значения
Логические значения в Python называются bool и принимают значения True или False. В языке «1С:Элемент» им соответствует тип Булево со значениями Истина и Ложь.
is_logged_in = True
message = "Добро пожаловать в личный кабинет!" if is_logged_in else "Пожалуйста, войдите в систему."
пер Залогинен = Истина
знч Сообщение = Залогинен ? "Добро пожаловать в личный кабинет!" : "Пожалуйста, войдите в систему."
Пустые значения
Чтобы обозначить «пустое» значение, не принадлежащее ни к одному типу, в Python используется None. В «1С:Элемент» для этого служит специальный тип Неопределено.
a = None
if a is None:
message = "Переменная не содержит значения"
пер А: Строка? = Неопределено
если А == Неопределено
знч Сообщение = "Переменная не содержит значения"
;