Murderdoll666
я так пробывала.. ))) не работает)
Должно работать - скорее всего с кодировкой проблемы…
Насколько я понимаю во входном файлике первым столбцом идет английский а русский вторым.
Если поменять направление перевода (Руский -> Англ), все еще работает?
Если нет - значит проблема с кодировкой (Кодировка слова полученого из консоли не совпадает с кодировкой слова полученного из файла (соответственно elif slovo in ta: возвращает False и перевод не находится)).
решение - перевести все данные в юникод. Соответственно добавить:
line=file.readline().decode ('кодировка')
и
slovo = raw_input('>').decode ('кодировка')
какая там должна стоять кодировка навскидку, к сожалению, не скажу.
Если перевод с русского на Англ работает, тогда не знаю в чем проблема может быть.
ЗЫ: и цикл для чтения, наверное, лучше for использовать:
file=open("dictionary.txt","r")
sa=[]
ta=[]
for line in file:
paar=line.split('\t')#.decode ('кодировка') опять же)
sa.append(paar[0])
ta.append(paar[1])
UPD:Выспавшимся мозгом посмотрел - не там проблема.
Второй столбец просто читаеться вместе с переводом строки.
Нужно его убрать:
Вот так все работет, специально проверил:
file=open("dictionary.txt","r")
sa=[]
ta=[]
for line in file:
paar=line.split('\t')
sa.append(paar[0].strip ())
ta.append(paar[1].strip ())
slovo = raw_input('>')
if slovo in sa:
print 'perevod:', ta[sa.index(slovo)]
elif slovo in ta:
print 'perevod:', sa[ta.index(slovo)]
else:
print 'perevoda net'
>One
perevod: Один
>>>
>Two
perevod: Два
>>>
>Два
perevod: Two
>>>
>Один
perevod: One
>>>
Правда проверял только под Ubuntu, под Окнами все еще может оставаться проблема кодировок…