gpt4 book ai didi

python - 使用字典进行翻译 (Python)

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:24 24 4
gpt4 key购买 nike

好吧,我的老师给了我下面的作业,我们只用了大约一天的时间来处理字典:

1) 创建字典将句子从一种语言翻译成另一种语言(例如西类牙语翻译成英语)。2) 程序应该用第一种语言写一个句子,然后用第二种语言写一个句子。

到目前为止,我的代码是这样的:

def userinput():
inputsentence = input("What sentence would you like to translate?(Hint! Make the sentence I speak _ more than my friends")
spanoreng = input("Is this sentence Spanish or English?(Please enter span or eng")
return(inputsentence,spanoreng)

def spantoeng(spantoengtras,inputsentence):
inputsentence.lower()
inputsentence.split()
print(inputsentence)
def engtospan(engtospantrans,inputsentence):
inputsentence.lower()
inputsentence.split()
print(inputsentence)
def main():
spantoengtrans = {'yo' : 'I', 'hablo' : 'speak', 'espanol' : 'spanish', 'ingles' : 'english', 'mas' : 'more', 'de' : 'than','mis' : 'my', 'amigos' : 'friends'}
engtospantrans = {'I' : 'yo', 'speak' : 'hablo', 'spanish' : 'espanol', 'english' : 'ingles', 'more' : 'mas', 'than' : 'de','my' : 'mis', 'friends' : 'amigos'}
(inputsentence,spanoreng) = userinput()
if spanoreng == 'span':
spantoeng(spantoengtrans,inputsentence)
elif spanoreng == 'eng':
engtospan(engtospantrans,inputsentence)
else:
print("please type span or eng")
(inputsentence,spanoreng) = userinput()


main()

我唯一遇到的麻烦是使用字典更改列表。另外,我的 .lower() 似乎什么也没做。帮助?

编辑:意识到我的错误。谢谢。

最佳答案

我没有看到任何列表——我只看到了字符串,它们是不可变的,没有使用字典。

所以核心功能可能是:

def translate(sentence, transdict):
words = sentence.split()
trans = [transdict.get(w.lower(),w) for w in words]
print(' '.join(trans))

split 将句子变成以空格分隔的单词列表;然后列表理解将其变成翻译单词列表(如果单词不在字典中,则单独留下);最后我们将后一个列表连接回一个空格分隔的句子。

当然,这还有很多不足之处,但如果没有正则表达式就很难做得更好——如果您只使用了一天字典,那么正则表达式可能远远超出您目前的学习范围。如果他们不是:

import re

def maketrans(somedict):
def trans(mo):
word = mo.group()
return somedict.get(word.lower(), word)
return trans

然后

translated = re.sub(r'\w+', maketrans(right_dict), sentence)
print (translated)

将保留标点符号和空格。但是在 RE 和高阶函数之间,我怀疑你最好忽略这个,直到你学习 Python 的后期:-)。

关于python - 使用字典进行翻译 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28311990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com