头歌Python作业——7.4 简易英汉字典(project)

目录

第一关 读文件到字典中

第二关 翻译单词

第三关 翻译句子

如果此文章对你有所帮助,麻烦点个赞,谢谢~~~

点赞加关注,追新不迷路~~~


第一关 读文件到字典中

def create_dict(filename):
    """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
    将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
    返回字典。
    """
    #####################Begin#####################################
    # 此处去掉注释符号“#”并补充你的代码
    dic = {}                                    # 创建空字典  
    with open(filename, 'r', encoding='utf-8') as data:  
        for x in data:                          # 遍历文件对象  
            x = x.strip().split(maxsplit=1)     # 每行根据空格切分为列表,只切分一次  
            dic.update({x[0].lower(): x[1]})    # 列表的两个元素作为字典的键和值加入字典中  
    print(len(dic)) 
   
    #####################End#####################################
 
 
if __name__ == '__main__':
    file = './dict.txt'           # 表示文件名的字符串,表示位于当前路径下的'dict.txt'文件
    word_dic = create_dict(file)  # 调用函数返回字典类型的数据


第二关 翻译单词

def create_dict(filename):  
    """读文件中的单词及释义,以单词为键,其他部分为值创建字典。  
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,  
    将读文件并根据空格切分一次,切分结果分别作为键和值创新字典。"""  
    dic = {}                                    # 创建空字典  
    with open(filename, 'r', encoding='utf-8') as data:  
        for x in data:                          # 遍历文件对象  
            x = x.strip().split(maxsplit=1)     # 每行根据空格切分为列表,只切分一次  
            dic.update({x[0].lower(): x[1]})    # 列表的两个元素作为字典的键和值加入字典中  
    return dic
 
 
def translate(dic, word):
    """接收两个参数,第一个是读文件创建的字典,第二个参数为要查询的单词,字符串
    根据文件创建的字典,从中查询单词word,
    如果查询单词存在,元组形式返回词与词的释义;
    如果查询不存在,返回'这个词我不明白'
    """
    # 并补充你的代码
    word = word.lower()
    if word in dic:
        return word + ' ' + dic[word]
    else:
        return word + ' ' + '这个词我不明白'
 
def translate_word():
    """调用此函数时,先输出提示信息:'请输入查询的单词:'
    用户可循环输入欲翻译的单词,若直接输入回车时,输出'查询结束,正在退出...'。
    输入非空时输出翻译结果
    """
    # 并补充你的代码  
    while True:
        words = input('请输入查询的单词:')
        if words != '': #判断是否为回车键
            print(translate(word_dic, words))
        else:
            print('查询结束,正在退出...')
            break
 
 
if __name__ == '__main__':
    file = './dict.txt'           # 表示文件名的字符串,表示位于当前路径下的'dict.txt'文件
    word_dic = create_dict(file)  # 调用函数返回字典类型的数据
    print('载入字典数据成功!')
    translate_word()              # 翻译单词


第三关 翻译句子

import string
 
def create_dict(filename):  
    """读文件中的单词及释义,以单词为键,其他部分为值创建字典。  
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,  
    将读文件并根据空格切分一次,切分结果分别作为键和值创新字典。"""  
    dic = {}                                    # 创建空字典  
    with open(filename, 'r', encoding='utf-8') as data:  
        for x in data:                          # 遍历文件对象  
            x = x.strip().split(maxsplit=1)     # 每行根据空格切分为列表,只切分一次  
            dic.update({x[0].lower(): x[1]})    # 列表的两个元素作为字典的键和值加入字典中  
    return dic
 
 
def translate(dic, word):
    """接收两个参数,第一个是读文件创建的字典,第二个参数为要查询的单词,字符串
    根据文件创建的字典,从中查询单词word,
    如果查询单词存在,元组形式返回词与词的释义;
    如果查询不存在,返回'这个词我不明白'
    """
    # 并补充你的代码
    word = word.lower()
    if word in dic:
        return word + ' ' + dic[word]
    else:
        return word + ' ' + '这个词我不明白'
 
def sentence_to_words():
    """调用此函数时,先输出提示信息'请输入查询的句子:'
    用户输入欲翻译的句子
        若输入非空时,先将"n't"替换为 ' not'、"'s"替换为 ' is',再将标点符号替换为空格。
    根据空格将句子切分为单词的列表,调用translate逐个单词进行翻译。
    用户可重复多次输入,每输入一名翻译一句,
    若直接输入回车时,输出'查询结束,正在退出...'。然后结束程序。
    """
    # 并补充你的代码
    while True:
        words = input('请输入查询的句子:')
        if len(words) == 0:  # 判断是否为回车键
            print('查询结束,正在退出...')
            break
        else:
            words = words.replace("n't", ' not').replace("'s", ' is')
            words = words.replace(",", ' ').replace(".", ' ')  # 具体需要替换多少种标点看测试内容
            words = words.split()
            for i in words:
                i = i.lower()
                print(translate(word_dic, i))
 
if __name__ == '__main__':
    file = './dict.txt'           # 表示文件名的字符串,表示位于当前路径下的'dict.txt'文件
    word_dic = create_dict(file)  # 调用函数返回字典类型的数据
    print('载入字典数据成功!')
    sentence_to_words()           # 翻译句子

如果此文章对你有所帮助,麻烦点个赞,谢谢~~~

点赞加关注,追新不迷路~~~

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新发文啦~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值