我正在尝试制作一个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])
答案 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)