Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 14, 2021 21:40:47

IvanGazul
Зарегистрирован: 2021-08-14
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Создал Переводчик(проблема)

Ку парни создал переводчик с Румынского на Молдавский так как Молдавский это не офф. язык его нету в переводчиках я решил создать такой переводчик но они очень схожи,например в Румынском ‘b’ это на Молдавском ‘б’ типо транслита,НО в Румынском есть символы которые означают 2 разные буквы например ‘c’ он читается как ‘к’ или ‘ч’ и с этой проблемой я столкнулся и написал решение которое пришло в голову: for numletter in enumerate(len(text)) которая проверяет что за символ сидит за ней и перед ней и ставит нужный символ,но выскакивает ошибка ‘int’ object is not iterable кто может подкорректируйте код или скажите почему не работает или как сделать лучше,буду очень благодарен!

Пример для теста :cât şi după vârstă. Aici lucrurile stau puţin mai complicat. În primul rând – poemele pentru cei mici sunt foarte bune şi pentru copii mai mari, ba chiar şi pentru adulţi. Invers, în schimb, nu e valabil.

moldova ={
'a': 'а','j': 'ж',
'b': 'б','z': 'з',
'c': 'ч','i': 'и',
'd': 'д',
'e': 'е','l': 'л',
'v': 'в','m': 'м',
'g': 'г','n': 'н',
'd': 'д','o': 'о',
'p': 'п','r': 'р',
's': 'с','t': 'т',
'u': 'у','f': 'ф',
'h': 'х','ţ': 'ц',
'ş': 'ш','â': 'ы',
'ă': 'э','î': 'ы',
'yu': 'ю','ea': 'я',
'x':'кс',

'A': 'А','J': 'Ж',
'B': 'Б','Z': 'З',
'C': 'Ч','I': 'И',
'D': 'Д',
'E': 'Е','L': 'Л',
'V': 'В','M': 'М',
'G': 'Г','N': 'Н',
'D': 'Д','O': 'О',
'P': 'П','R': 'Р',
'S': 'С','T': 'Т',
'U': 'У','F': 'Ф',
'H': 'Х','Ț': 'Ц',
'Ș': 'Ш','Â': 'Ы',
'Ă': 'Э','Î': 'Ы',
'Yu': 'Ю','Ea': 'Я',
'X':'Кс',

' ': ' ','-': '-',
'': '','.': '.',
'–': '–',',': ','
}

outstr = ''
space = ' '

def translate(text):
translation = ""
for letter in text:
for numletter in enumerate(len(text)):
if text[numletter+1]=='c' and text[numletter]=='ă':
if letter.lower():
translation = translation + 'к'
if letter.isupper():
translation = translation + 'К'
translation = translation + moldova[letter]
else:
translation = translation + letter
return translation

print(translate(input("Введите текст: ")))

Отредактировано IvanGazul (Авг. 14, 2021 21:42:28)

Офлайн

#2 Авг. 14, 2021 23:29:07

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Создал Переводчик(проблема)

IvanGazul
но выскакивает ошибка ‘int’ object is not iterable
  
>>> list(enumerate(len('abcd')))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> 
>>> list(enumerate('abcd'))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
>>>

При работе с индексами в массиве нужно также следить за правой и левой границей в массиве, чтобы индексы никогда (ни на каком шаге цикла) не выходили за левую границу или за правую границу массива. А у тебя выходит за правую в строке numletter+1 .



Отредактировано py.user.next (Авг. 14, 2021 23:32:05)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version