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

Типы данных

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

Числа

В Python целые числа относятся к типу int, а дробные — к типу float. В языке «1С:Элемент» целые и дробные числа — это один тип Число.

Python
a = 3     # int
b = 3.14 # float
«1С:Элемент»
знч А = 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 включительно.

Python
import random

# Случайное целое число от 1 до 10 включительно
a = random.randint(1, 10)
# Случайное число с плавающей запятой от 0.0 до 1.0
b = random.random()
«1С:Элемент»
// Случайное целое число от 1 до 10 включительно
знч А = новый СлучайныйГенератор().СлучайноеЦелое(1, 11)
// Случайное число с плавающей запятой от 0.0 до 1.0
знч Б = новый СлучайныйГенератор().СлучайноеЧисло()

Чтобы задать минимально и максимально возможные числа, в Python используют специальные значения «минус бесконечность» ('-inf') и «плюс бесконечность» ('inf'). В языке «1С:Элемент» вместо «минус бесконечности» используют число –264, которое меньше любого возможного числа в диапазоне допустимых значений. Соответственно, аналогом «плюс бесконечности» выступает число 264.

Python
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
«1С:Элемент»
метод НайтиМаксимум(Числа: Массив<Число>): Число?
// Если массив пустой, возвращается Неопределено
если Числа.Пусто()
возврат Неопределено
;
// В качестве начального значения
// берем самое маленькое из возможных значений
пер Максимум = -(2 ** 64)

для Число из Числа
если Число > Максимум
Максимум = Число
;
;
возврат Максимум
;

Строки

Текстовые значения в Python относятся к типу str, а в языке «1С:Элемент» — к типу Строка. Записываются они одинаково — в кавычках, например "текст".

В обоих языках строки неизменяемы. Это значит, что методы обработки строк не меняют исходную строку, а возвращают новую. Поэтому запись вроде s.replace(a, b) (замена подстроки) в Python не превращает строку s в другую строку — чтобы получить результат, его нужно сохранить в новую переменную. В языке «1С:Элемент» действует то же правило — метод возвращает новую строку, а старая остается прежней.

Длину строки в Python определяют с помощью функции len(s). В языке «1С:Элемент» для этого используют метод Длина().

Python
text = "Привет, мир!"
length = len(text) # 12
«1С:Элемент»
знч Текст = "Привет, мир!"
знч Длина = Текст.Длина() // 12

Подставить значение переменной в строку в Python можно через f-строку: f"Привет, {имя}". В языке «1С:Элемент» для этого используют два разных символа, в зависимости от того, что именно нужно получить в результате. Символ % подставляет значение переменной как есть — это удобно там, где строка работает как идентификатор или имя: "Колонка%Номер". Символ $ подставляет представление — то, как значение выглядит для пользователя: "Ваш заказ № $Номер". Например, число 1000 в первом случае окажется в строке как 1000, а во втором — как 1 000 (с пробелом-разделителем разрядов).

Python
user_name = "Иван"
message = f"Привет, {user_name}!"
«1С:Элемент»
знч ИмяПользователя = "Иван"
знч Сообщение = "Привет, %ИмяПользователя!"

Когда требуется изменить строку, в Python используют метод replace. Так, вызов s.replace(a, b) вернет строку, в которой все вхождения a заменены на b. В языке «1С:Элемент» этому методу соответствует Заменить(Образец, Замена). Для определения количества вхождений одной строки в другую в Python используют метод count, а в языке «1С:Элемент»КоличествоВхождений().

Python
text = "Я изучаю Python"
new_text = text.replace("Python", "1С:Элемент")
«1С:Элемент»
знч Текст = "Я изучаю Python"
знч НовыйТекст = Текст.Заменить("Python", "1С:Элемент")

Чтобы разбить строку на части по разделителю, в Python применяют метод split, а в языке «1С:Элемент»Разделить().

Python
text = "яблоко,банан,груша,апельсин"
# Разбиваем строку по запятым
fruits = text.split(",")
# Результат: ['яблоко', 'банан', 'груша', 'апельсин']
«1С:Элемент»
знч Текст = "яблоко,банан,груша,апельсин"
// Разбиваем строку по запятым
знч Фрукты = Текст.Разделить(",")
// Результат: ["яблоко", "банан", "груша", "апельсин"]

Логические значения

Логические значения в Python называются bool и принимают значения True или False. В языке «1С:Элемент» им соответствует тип Булево со значениями Истина и Ложь.

Python
is_logged_in = True
message = "Добро пожаловать в личный кабинет!" if is_logged_in else "Пожалуйста, войдите в систему."
«1С:Элемент»
пер Залогинен = Истина
знч Сообщение = Залогинен ? "Добро пожаловать в личный кабинет!" : "Пожалуйста, войдите в систему."

Пустые значения

Чтобы обозначить «пустое» значение, не принадлежащее ни к одному типу, в Python используется None. В «1С:Элемент» для этого служит специальный тип Неопределено.

Python
a = None

if a is None:
message = "Переменная не содержит значения"
«1С:Элемент»
пер А: Строка? = Неопределено

если А == Неопределено
знч Сообщение = "Переменная не содержит значения"
;