Top.Mail.Ru
Ответы

Задачка на питоне

После недавнего сбоя в операционной системе от компании «Oursoft» у Гвидо сбилась кодировка на компьютере. Теперь все буквы русского алфавита отображаются в некорректном виде:

[u-<номер символа в таблице Unicode>]
Гвидо еще не научился читать символы в таком формате, поэтому просит вас написать программу, которая будет "расшифровывать" для него все тексты на компьютере.

На вход программе подается строка текста. Расшифруйте текст, заменив все конструкции [u-<номер символа в таблице Unicode>] на соответствующие буквы русского алфавита, и выведите его.

Формат входных данных
На вход программе подается строка текста, в которой могут быть зашифрованы символы русского алфавита.

Формат выходных данных
Программа должна вывести строку текста, расшифровав символы русского алфавита.

Примечание. Будем считать, что буквы Ё нет в русском алфавите.

По дате
По рейтингу
Аватар пользователя
Ученик
1нед

s = input() for i in range(1040, 1105): if str(i) in s: s = s.replace(f'[u-{i}]', chr(i)) print(s)

Аватар пользователя
Профи
7мес

import re

# Функция для замены конструкций [u-<номер>] на соответствующие символы
def decode_text(text):
# Функция замены для каждого совпадения
def replace_unicode(match):
unicode_number = int( match.group (1)) # Получаем номер символа
return chr(unicode_number) # Возвращаем символ по коду

# Используем регулярное выражение для поиска конструкций [u-<номер>]
decoded_text = re.sub(r'\[u-(\d+)\]', replace_unicode, text)
return decoded_text

# Ввод текста
input_text = input()

# Расшифровка текста
output_text = decode_text(input_text)

# Вывод результата
print(output_text)

Аватар пользователя
Просветленный
9мес

Если скажет сделать то же самое БЕЗ `import re`, шли к монаху сразу

12345678910
 import re 
from copy import deepcopy 
 
INPUT:str = 'Текст: [u-<1056>]-[u-<1091>]-[u-<1076>]-[u-<1082>]-[u-<1086>]-[u-<1074>]-[u-<1089>]-[u-<1082>]-[u-<1080>]' 
 
codes:list = re.findall('\[u\-<(\d+)>\]', INPUT, re.MULTILINE | re.DOTALL) 
OUTPUT = deepcopy(INPUT) 
for c in codes: 
    OUTPUT = re.sub('\[u\-<{:s}>\]'.format(c), chr(int(c)), OUTPUT) 
print(OUTPUT)