Как определить в словах подмену букв?

Допустим есть слово авaтар в нем имеется a - английская и a - русская? Как определить, где какая?


Ответы (3 шт):

Автор решения: Oopss
s=['aвaтaр','aватар','аватар']
for l in s:
    print()
    for b in l:
         print(f"{b} - hex={bytes(b, 'utf-8').hex():>4} - dec={int(bytes(b, 'utf-8').hex(),16)}")

a - hex=  61 - dec=97     латинская  a
а - hex=d0b0 - dec=53424  кириллица  а

a - hex=  61 - dec=97     
в - hex=d0b2 - dec=53426
a - hex=  61 - dec=97
т - hex=d182 - dec=53634
a - hex=  61 - dec=97
р - hex=d180 - dec=53632

a - hex=  61 - dec=97
в - hex=d0b2 - dec=53426
а - hex=d0b0 - dec=53424
т - hex=d182 - dec=53634
а - hex=d0b0 - dec=53424
р - hex=d180 - dec=53632

а - hex=d0b0 - dec=53424
в - hex=d0b2 - dec=53426
а - hex=d0b0 - dec=53424
т - hex=d182 - dec=53634
а - hex=d0b0 - dec=53424
р - hex=d180 - dec=53632
→ Ссылка
Автор решения: Alexey Trukhanov

Непонятно, что может быть на входе (Только нижний регистр? Только кириллица? Спецсимволы?) и что должно получится на выходе, но допустим:

word = 'авaтар'
word_checked = ''.join([i if 'а' <= i <= 'я' else '_' for i in word])
print(word_checked)

Проверям, попадают ли входящие символы в промежуток кодов кириллических знаков нижнего регистра и если попадают - оставляем без изменений, если не попадают - меняем на какой-то служебный символ, например подчеркивание.

UPD Вот, для красоты, можно ошибочный символ красить в красный цвет

word_checked = ''.join([i if 'а' <= i <= 'я' else f'\033[31m{i}\033[0m' for i in word])

UPD2 ...или все слово раскрасить - кириллицу в зеленый, латиницу - в красный.

word_checked = ''.join([f'\033[32m{i}\033[0m' if 'а' <= i <= 'я' else f'\033[31m{i}\033[0m' for i in word])
→ Ссылка
Автор решения: Алексей Р

С использованием регулярных выражений - из слова делаем маску, где латиницу заменяем на L, а кириллицу - на К. После чего выводим слово, а под ним - маску.

import re

word = 'aвATар'
mask = re.sub('[а-яёА-ЯЁ]', 'K', re.sub('[a-zA-Z]', 'L', word))
print(f'{word}\n{mask}')
aвATар
LKLLKK
→ Ссылка