Файл: Определяется функция scales(c, n), которая на вход принимает символ c и целое число n.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 56

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Описание:Определяется функция scales(c, n), которая на вход принимает символ c и целое число n. Далее, создаются переменные k, one и two со значениями 1, [] и []. Затем идет цикл while, который будет выполняться пока n не станет равным 0. На каждой итерации цикла происходит деление n на 3 с остатком. Если остаток равен 1, то в зависимости от значения c в список two или one добавляется значение k. Если остаток равен 2, то в зависимости от значения c в список one или two добавляется значение k, и к n добавляется 1. Значение k умножается на 3 на каждой итерации цикла. Функция возвращает строку с числами из списка one и строку с числами из списка two. Далее, с помощью функции open открывается файл "input.txt" для чтения данных и файл "output.txt" для записи. Затем происходит цикл for, который перебирает каждую строку из файла "input.txt". Строка разделяется на две переменные c и n, затем переменная n преобразуется в целое число. Далее, вызывается функция scales(c, n) и значения l и r присваиваются строкам, возвращаемым функцией. Затем с помощью метода write значения l и r записываются в файл "output.txt".Примечание:

  1. Данная программа может записать результат как для одной, так и для нескольких строк, написанных в файле "input.txt".

  2. Если Вам требуется сохранение результатов прошлых вычислений в файле "output.txt", Вам следует в 17-ой строке программы изменить с “w” на “a” атрибут открываемого для записи файла "output.txt".
Код:def scales(c, n):k = 1one, two = [], []while n:i, n = n % 3, n // 3if i == 1:(two if c == 'L' else one).append(k)elif i == 2:if c == 'L':one.append(k)n += 1else:two.append(k)n += 1k *= 3return f'L:{" ".join(map(str, one))}', f'R:{" ".join(map(str, two))}'with open('input.txt') as inf, open('output.txt', 'w') as outf:for line in inf:c, n = line.split()n = int(n)l, r = scales(c, n)outf.write(f'{l}\n{r}\n')