Опитвам се да направя Python програма за превод от английски на аборигенски език, който се чете dictionary.txt
файл.
Тази програма трябва да съдържа двойки английски и. \ Tпреведени думи, разделени със запетая (,) и създава речник с тях. След това програмата трябва да чете в реда от текста на потребителя (до празен ред) и да отпечата преведено изречение, където всяка дума е прегледана в речника.
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 за отговор № 1Когато пишете 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))
0 за отговор № 2
Благодаря ви @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)