Задачка на питоне
После недавнего сбоя в операционной системе от компании «Oursoft» у Гвидо сбилась кодировка на компьютере. Теперь все буквы русского алфавита отображаются в некорректном виде:
[u-<номер символа в таблице Unicode>]
Гвидо еще не научился читать символы в таком формате, поэтому просит вас написать программу, которая будет "расшифровывать" для него все тексты на компьютере.
На вход программе подается строка текста. Расшифруйте текст, заменив все конструкции [u-<номер символа в таблице Unicode>] на соответствующие буквы русского алфавита, и выведите его.
Формат входных данных
На вход программе подается строка текста, в которой могут быть зашифрованы символы русского алфавита.
Формат выходных данных
Программа должна вывести строку текста, расшифровав символы русского алфавита.
Примечание. Будем считать, что буквы Ё нет в русском алфавите.
s = input() for i in range(1040, 1105): if str(i) in s: s = s.replace(f'[u-{i}]', chr(i)) print(s)
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)
Если скажет сделать то же самое БЕЗ `import re`, шли к монаху сразу
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)