当前位置:   article > 正文

python字典翻转教学_创建大学英语四级单词字典

创建大学英语四级单词字典

目录

第1关 创建大学英语四级单词字典

 第2关 合并大学英语四六级词汇字典 

第3关 查单词输出中文释义

第4关 删除字典中特定字母开头的单词

第5关 单词英汉记忆训练


第1关 创建大学英语四级单词字典

本关任务:编写一个能创建大学英语四级单词字典的小程序。

测试输入: 10

预期输出: [('African', 'a.非洲的 n.非洲人'), ('Arabian', 'a.阿拉伯的'), ('Atlantic', 'a.大西洋的 n.大西洋'), ('August', 'n.八月'), ('Australia', 'n.澳大利亚'), ('Australian', 'a.澳大利亚的'), ('B.C.', '(缩)公元前'), ('Bible', 'n.基督教《圣经》'), ('Britain', 'n.不列颠,英国'), ('British', 'a.不列颠的,英联邦的')]

  1. def create_dict(file):
  2. """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
  3. 多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
  4. 将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
  5. 返回字典。
  6. """
  7. # 在下面一行补充代码,创建一个空字典
  8. dic = {} # 创建空字典
  9. with open(file, 'r', encoding='utf-8') as data: # 打开文件,以读模式创建文件对象
  10. for x in data: # 遍历文件对象
  11. word, trans = x.strip().split(maxsplit=1) # 每行根据空格切分为列表,只切分一次,将单词与释义分开
  12. # 补充程序,列表的首个元素作为字典的键,第二个元素做字典的值,加入字典中,返回这个字典
  13. dic.update({word:trans})
  14. return dic
  15. if __name__ == '__main__':
  16. filename = '/data/bigfiles/cet4.txt'
  17. n = int(input()) # 输入一个正整数
  18. cet_dict = create_dict(filename) # 调用函数,返回字典类型数据
  19. # 在下面补充语句,根据字典的键对字典进行排序,得到排序的列表,输出列表前n项
  20. print([x for x in sorted(cet_dict.items())][:n])

 第2关 合并大学英语四六级词汇字典 

本关任务:编写一个能将大学英语四级、六级词汇合并为一个字典的小程序。

小明同学在准备参加大学英语四六级考试,为了督促自己背单词,他决定自己写一个背单词的程序。 cet4.txt cet6.txt

编程要求

根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。输入一个正整数n,输出所创建字典排序后的前n项。

  1. def create_dict(file):
  2. """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
  3. 多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
  4. 将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
  5. 返回字典。
  6. """
  7. # 补充你的代码
  8. dic = {} # 创建空字典
  9. with open(file, 'r', encoding='utf-8') as data: # 打开文件,以读模式创建文件对象
  10. for x in data: # 遍历文件对象
  11. word, trans = x.strip().split(maxsplit=1) # 每行根据空格切分为列表,只切分一次,将单词与释义分开
  12. dic.update({word:trans})
  13. return dic
  14. def merge_dic(file1, file2):
  15. """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
  16. # 补充你的代码
  17. dict1 = create_dict(file1)
  18. dict2 = create_dict(file2)
  19. dict3 = dict1 | dict2
  20. return dict3
  21. def sort_dic(cet_dic, n):
  22. """根据字典的键对字典进行排序,得到排序的列表,返回列表前n项"""
  23. # 补充你的代码
  24. return [x for x in sorted(cet_dict.items())][:n]
  25. if __name__ == '__main__':
  26. filename1 = '/data/bigfiles/cet4.txt' # 数据文件名
  27. filename2 = '/data/bigfiles/cet6.txt' # 数据文件名
  28. num = int(input()) # 输入一个正整数
  29. cet_dict = merge_dic(filename1, filename2) # 调用函数,返回字典类型数据
  30. print(sort_dic(cet_dict, num)) # 输出排序后列表前n项

第3关 查单词输出中文释义

本关任务:编写一个能查询单词中文释义的小程序。

小明同学在准备参加大学英语四六级考试,为了督促自己背单词,他决定自己写一个背单词的程序。根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。输入一个单词,查询并输出对应的释义,单词在字典中不存在时,输出'单词不存在'。

  1. def create_dict(file):
  2. """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
  3. 多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
  4. 将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
  5. 返回字典。
  6. """
  7. # 补充你的代码
  8. dic = {} # 创建空字典
  9. with open(file, 'r', encoding='utf-8') as data: # 打开文件,以读模式创建文件对象
  10. for x in data: # 遍历文件对象
  11. word, trans = x.strip().split(maxsplit=1) # 每行根据空格切分为列表,只切分一次,将单词与释义分开
  12. dic.update({word:trans})
  13. return dic
  14. def merge_dic(file1, file2):
  15. """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
  16. # 补充你的代码
  17. dict1 = create_dict(file1)
  18. dict2 = create_dict(file2)
  19. dict3 = dict1 | dict2
  20. return dict3
  21. def translate(cet_dic, word):
  22. """接收两个参数,第一个是读文件创建的字典,第二个参数为要查询的单词,字符串
  23. 根据文件创建的字典,从中查询单词word,
  24. 如果查询单词存在,元组形式返回词与词的释义;
  25. 如果查询不存在,返回'单词不存在'
  26. """
  27. # 补充你的代码
  28. if word in cet_dic:
  29. return word,cet_dic[word]
  30. else:
  31. return word,'单词不存在'
  32. if __name__ == '__main__':
  33. filename1 = '/data/bigfiles/cet4.txt' # 数据文件名
  34. filename2 = '/data/bigfiles/cet6.txt' # 数据文件名
  35. word = input() # 输入一个单词
  36. cet_dict = merge_dic(filename1, filename2) # 调用函数,返回字典类型数据
  37. result = translate(cet_dict, word)
  38. print('{}: {}'.format(*result))

第4关 删除字典中特定字母开头的单词

本关任务:编写一个能删除字典中特定字母开头的单词的小程序。

小明同学在准备参加大学英语四六级考试,为了督促自己背单词,他决定自己写一个背单词的程序。根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。删除字典中特定字母开头的单词(首字母不区分大小写),输出删除后字典长度。

  1. def create_dict(file):
  2. """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
  3. 多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
  4. 将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
  5. 返回字典。
  6. """
  7. # 补充你的代码
  8. dic = {} # 创建空字典
  9. with open(file, 'r', encoding='utf-8') as data: # 打开文件,以读模式创建文件对象
  10. for x in data: # 遍历文件对象
  11. word, trans = x.strip().split(maxsplit=1) # 每行根据空格切分为列表,只切分一次,将单词与释义分开
  12. dic.update({word:trans})
  13. return dic
  14. def merge_dic(file1, file2):
  15. """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
  16. # 补充你的代码
  17. dict1 = create_dict(file1)
  18. dict2 = create_dict(file2)
  19. dict3 = dict1 | dict2
  20. return dict3
  21. def del_words(cet_dic, letter):
  22. """删除字典中首字母与参数letter相同的单词,返回删除后的字典"""
  23. # 补充你的代码
  24. list1 = [x for x in cet_dic]
  25. for i in range(len(list1)):
  26. if list1[i][0].lower() == letter:
  27. cet_dic.pop(list1[i])
  28. return cet_dic
  29. if __name__ == '__main__':
  30. filename1 = '/data/bigfiles/cet4.txt' # 数据文件名
  31. filename2 = '/data/bigfiles/cet6.txt' # 数据文件名
  32. alphabet = input().lower() # 输入一个字母
  33. cet_dict = merge_dic(filename1, filename2) # 调用函数,返回字典类型数据
  34. result = del_words(cet_dict, alphabet) # 删除特定单词后的字典
  35. print(len(result)) # 输出字典长度

第5关 单词英汉记忆训练

编程要求

根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。用户输入一个字母,用这个字母的ASCII值为随机数种子,随机抽取这个字母开头的单词(首字母不区分大小写)进行记忆训练,用户填写词义,用户输入的词义在释义中存在时认为回答正确,此时输出当前词全部释义;输入错误时,记录该单词信息到错词字典;用户直接输入回车时结束训练,并输出正确率并输出全部出错单词的信息。

  1. import random
  2. def create_dict(file):
  3. """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
  4. 多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
  5. 将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
  6. 返回字典。
  7. """
  8. # 补充你的代码
  9. dic = {} # 创建空字典
  10. with open(file, 'r', encoding='utf-8') as data: # 打开文件,以读模式创建文件对象
  11. for x in data: # 遍历文件对象
  12. word, trans = x.strip().split(maxsplit=1) # 每行根据空格切分为列表,只切分一次,将单词与释义分开
  13. # 补充程序,列表的首个元素作为字典的键,第二个元素做字典的值,加入字典中,返回这个字典
  14. dic.update({word:trans})
  15. return dic
  16. def merge_dic(file1, file2):
  17. """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
  18. # 补充你的代码
  19. dict1 = create_dict(file1)
  20. dict2 = create_dict(file2)
  21. dict3 = dict1 | dict2
  22. return dict3
  23. def training(cet_dic, letter):
  24. """输入一个字母,返回以这个字母开头的词汇的字典(不区分大小写),用于单词记忆训练"""
  25. # 补充你的代码
  26. list1 = [x for x in cet_dic]
  27. for i in range(len(list1)):
  28. if list1[i][0].lower() != letter:
  29. cet_dic.pop(list1[i])
  30. return cet_dic
  31. def en_to_ch(train_dic):
  32. """从训练字典中随机抽取以某个字母开头的单词,用户填写词义
  33. 回答正确时,输出当前词全部释义,输入错误时,记录该单词信息,
  34. 直接输入回车时结束输入,训练结束后输出全部出错单词的信息"""
  35. # 创建空字典,用于容纳答错单词
  36. dic1 = {}
  37. while True: # 无限循环用于一次训练记忆多个单词
  38. word = random.choice(list(train_dic.keys())) # 从字典的键中随机抽取一个单词
  39. print(f'请输入单词{word}的中文翻译:') # 输出提示语句
  40. answer = input() # 输入当前单词的语义
  41. if not answer: # 直接回车时输入为空,结束循环
  42. print('训练结束!')
  43. break
  44. # 补充你的程序,如果输入在释义中存在,输出完整释义,否则输出'答案错误'并将当前单词加入答错单词字典
  45. elif answer in train_dic[word]:
  46. print(f'{word}的释义为:{train_dic[word]}')
  47. elif answer not in train_dic[word]:
  48. print('答案错误')
  49. dic1[word] = train_dic[word]
  50. print('需要加强记忆的单词:')
  51. # 补充代码,逐个输出答错字典中的单词和释义
  52. for i in dic1:
  53. print(f'{i}{dic1[i]}')
  54. if __name__ == '__main__':
  55. filename1 = '/data/bigfiles/cet4.txt' # 数据文件名
  56. filename2 = '/data/bigfiles/cet6.txt' # 数据文件名
  57. alphabet = input('输入今天训练单词首字母:\n').lower()
  58. random.seed(ord(alphabet)) # 用当前字典的ASCII值做随机数种子,方便评测
  59. cet_dict = merge_dic(filename1, filename2) # 调用函数,返回字典类型数据
  60. train_dict = training(cet_dict, alphabet) # 本次训练单词的字典
  61. en_to_ch(train_dict) # 调用函数进行训练

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/674212
推荐阅读
相关标签
  

闽ICP备14008679号