Столкнулся с такой проблемой: при написании скрипта транслитерации сделал проверку предыдущего символа (для того что бы такие слова, как например: пятно, писались не pyatno, а p'atno), но теперь при транслитерации нескольких слов появляется обратная неточность
Введите строку: Привет
Pr'iv'et
Введите строку: Ёлка
'Olka
def Translit(input_char): list_rus = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'] list_eng = ['A', 'B', 'V', 'G', 'D', 'YE', 'YO', 'J', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', 'CH', 'SH', 'SCH', '', 'I', '\'', 'E', 'YU', 'YA', 'a', 'b', 'v', 'g', 'd', 'ye', 'yo', 'j', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'i', '\'', 'e', 'yu', 'ya'] list_rus_cons = ['Б', 'В', 'Г', 'Д', 'З', 'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'б', 'в', 'г', 'д', 'з', 'к', 'л', 'м', 'н', 'п', 'р', 'с', 'т', 'ф'] list_rus_vowel = ['Е', 'Ё', 'Ю', 'Я', 'И', 'е', 'ё', 'ю', 'я', 'и'] list_eng_vowel = ['\'E', '\'O', '\'U', '\'A', '\'I', '\'e', '\'o', '\'u', '\'a', '\'i'] try: prev_char = Translit.prev_char except AttributeError: prev_char = '' if input_char in list_rus_vowel: if prev_char in list_rus_cons: Translit.prev_char = input_char return str(list_eng_vowel[list_rus_vowel.index(input_char)]) Translit.prev_char = input_char if input_char in list_rus: return str(list_eng[list_rus.index(input_char)]) else: return input_char return output_char input_string = input('Введите строку: ') output_list = [] for input_char in input_string: output_list.append(Translit(input_char)) print(''.join(output_list)) input_string = input('Введите строку: ') output_list = [] for input_char in input_string: output_list.append(Translit(input_char)) print(''.join(output_list))
Как тут лучше поступить, что бы не менять атрибуты функции не из нее?
Заранее спасибо!