Вопрос задан 29.11.2023 в 23:58. Предмет Информатика. Спрашивает Тихонова Алёна.

PYYYYYYYYYYTHOOOOOOOOOON Напишите функцию, которая заменяет во всей строке все римские числа на

соответствующие десятичные числа. Пример: Введите строку: В MMXIII году в школе CXXIII состоялся очередной выпуск XI классов. Результат: В 2013 году в школе 123 состоялся очередной выпуск 11 классов.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Станіславський Ярослав.

Ответ:

s = input()

lst = s.split(' ')

rim = ['I', 'V', 'X', 'L', 'C', 'D', 'M']

v = {'I': 1, 'V' : 5, 'X' : 10, 'L' : 50, 'C' : 100, 'D' : 500, 'M' : 1000}

for i in range(len(lst)):

 if (rim[0] in lst[i]) or (rim[1] in lst[i]) or (rim[2] in lst[i]) or (rim[3] in lst[i]) or (rim[4] in lst[i]) or (rim[5] in lst[i]) or (rim[6] in lst[i]):

   num = 0

   for j in lst[i]:

     num += v[j]

   lst[i] = str(num)

print(*lst)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи вам потребуется использовать регулярные выражения. В Python для работы с ними обычно используется модуль `re`. Вот функция, которая выполняет необходимую замену:

```python import re

def заменить_римские_числа(строка): # Словарь для соответствия римских и десятичных чисел римские_числа = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}

# Функция для замены римских чисел в строке def заменить_римское_число(римское_число): десятичное_число = 0 предыдущее_значение = 0

for символ in reversed(римское_число): текущее_значение = римские_числа[символ]

if текущее_значение < предыдущее_значение: десятичное_число -= текущее_значение else: десятичное_число += текущее_значение

предыдущее_значение = текущее_значение

return str(десятичное_число)

# Заменяем римские числа в строке с использованием регулярных выражений новая_строка = re.sub(r'\b[IVXLCDM]+\b', lambda x: заменить_римское_число(x.group()), строка)

return новая_строка

# Пример использования ваша_строка = "В MMXIII году в школе CXXIII состоялся очередной выпуск XI классов." результат = заменить_римские_числа(ваша_строка) print(результат) ```

Эта функция использует регулярное выражение `\b[IVXLCDM]+\b`, чтобы найти все подстроки в строке, которые соответствуют римским числам. Затем она использует вложенную функцию `заменить_римское_число`, чтобы выполнить конвертацию римских чисел в десятичные.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос