Циклы
Если программа должна выполнять одни и те же действия много раз или до выполнения заданного условия, то используют циклы. В обоих языках есть циклы, повторяющие действия заданное количество раз: for в Python и для в языке «1С:Элемент», а также циклы с условием: while и пока.
В Python для определенного количества повторений используют функцию range, которая генерирует последовательность чисел от начального значения до конечного, не включая его. В языке «1С:Элемент» аналогичный цикл записывают иначе: явно указывают начальное и конечное значения, при этом конечное значение включается в диапазон. Поэтому при переводе из Python верхнюю границу нужно уменьшать на единицу: range(5) превращается в для Индекс = 0 по 4, а выражению range(2, 5) будет соответствовать для Индекс = 2 по 4.
Когда требуе тся шаг, отличный от единицы, в Python его указывают третьим аргументом функции range: range(2, 8, 2). В языке «1С:Элемент» для этого используют ключевое слово шаг: запись для Индекс = 2 по 6 шаг 2 аналогична приведенной выше для Python. Чтобы перебирать значения в обратном порядке, в Python задают отрицательный шаг: range(5, 0, -1). В языке «1С:Элемент» направление меняют c помощью ключевого слова вниз: запись для Индекс = 5 вниз по 1 перебирает значения от 5 до 1.
def calculate_sum():
sum = 0
for number in range(10, 101, 10):
sum += number
return sum
метод ВычислитьСумму(): Число
пер Сумма = 0
для Индекс = 10 по 100 шаг 10
Сумма += Индекс
;
возврат Сумма
;
Если перебирают не числа, а элементы коллекции, в Python используют конструкцию for x in a. В языке «1С:Элемент» для этого служит цикл для из: запись для X из А означает то же самое — перебрать по очереди все элементы коллекции А.
def calculate_sum(a):
sum = 0
for x in a:
sum += x
return sum
метод РассчитатьСумму(Массив: Массив<Число>): Число
пер Сумма = 0
для Элемент из Массив
Сумма += Элемент
;
возврат Сумма
;
Для цикла с условием в Python используют ключевое слово while, а в языке «1С:Элемент» — пока. Тело цикла выполняется, пока соблюдается заданное условие.
def calculate_factorial(n):
# Если число отрицательное, выбрасываем исключение
if n < 0:
raise ValueError("Факториал определен только для неотрицательных чисел!")
result = 1
while n > 1:
result *= n
n -= 1
return result
метод ВычислитьФакториал(Число: Число): Число
// Если число отрицательное, выбрасываем исключение
если Число < 0
выбросить новый ИсключениеНедопустимыйАргумент("Факториал определен только для неотрицательных чисел!")
;
пер Результат = 1
пока Число > 1
Результат *= Число
Число -= 1
;
возврат Результат
;
Наконец, управление циклом. В Python досрочный выход из цикла осуществляет оператор break, а пропуск оставшейся части тела и переход к следующей итерации — continue. В языке «1С:Элемент» им соответствуют операторы прервать и продолжить.
def filter_odd_numbers(numbers):
odd_numbers = []
for x in numbers:
if x % 2 == 0:
continue # Пропускаем четное число
odd_numbers.append(x)
return odd_numbers
метод ОтфильтроватьНечетные(Числа: Массив<Число>): Массив<Число>
пер НечетныеЧисла: Массив<Число> = []
для Элемент из Числа
если Элемент % 2 == 0
продолжить // Пропускаем четное число
;
НечетныеЧисла.Добавить(Элемент)
;
возврат НечетныеЧисла
;