通过阅读.txt文件进行语言翻译并打印出翻译过的句子

时间:2018-04-06 16:11:55

标签: python python-3.x

我正在尝试制作一个Python程序,从英语翻译成原文,从dictionary.txt文件中读取。

该程序应包含由逗号(,)分隔的英语和翻译单词对,并用它们构建字典。然后,程序应该从用户的文本行中读取(直到一个空行)并打印出一个翻译的句子,其中每个单词都已在字典中查找。

dictionary.txt文件如下所示:

afternoon,wuraji-wuraji
I,ngaju
bird,jirripirdi
like,kuja-piya
dance,juka-pinyi
python,malilyi
laugh,ngarlarrimi
we,ngalipa

我的程序应该像这样工作:

English: I like python
ngaju kuja-piya malilyi
English: we laugh
ngalipa ngarlarrimi
English:

到目前为止,我能够创建一个程序,为单个单词而不是组合句子生成翻译。我只是想知道我该怎么做?

我的代码如下:

user_input = []
translate = {}
for line in open('dictionary.txt'):
        english, aboriginal = line.split(',')
        translate[english] = aboriginal

while user_input != "":
  user_input = input("English: ")
  if user_input == "":
    break
  else:
    print(translate[user_input])

2 个答案:

答案 0 :(得分:0)

当你写translate[user_input]时,你只是在你的词典中访问密钥user_input,但如果它是一个完整的句子,你当然不会找到它。 所以你需要循环并找到每个单词的翻译,然后制作句子。

user_input = []
translate = {}
for line in open('dictionary.txt'):
        english, aboriginal = line.split(',')
        translate[english] = aboriginal

while user_input != "":
  user_input = input("English: ")
  if user_input == "":
    break
  else:
    tempList = []
    for word in user_input.split():
        tempList.append(translate[word])
    print(" ".join(tempList))

答案 1 :(得分:0)

感谢@JeanRostan的帮助,我能够使用以下代码输出正确的输出(即使它非常原始):

user_input = []
translate = {}
for line in open('dictionary.txt'):
        english, aboriginal = line.split(',')
        translate[english] = aboriginal

while user_input != "":
  user_input = input("English: ")
  if user_input == "":
    break
  else:
    tempList = []
    for word in user_input.split():
        tempList.append(translate[word])
    A = ("".join(tempList))
    B = (A.replace('\n',' ')) 
    B = B.rstrip()
    print(B)