当前位置:   article > 正文

hnu计算机与人工智能概论答案4.19

hnu计算机与人工智能概论答案

第1关:字典的创建和基本操作

根据提示,在右侧编辑器补充代码,创建字典并对该字典进行如下操作: 1.添加一门成绩:体育:90 2.打印化学成绩,如果找不到,则输出‘不存在’ 3.修改语文成绩为100 4.删除信息成绩 5.输出字典。

第一问,两种做法:

  1. score_dict = {}
  2. for i in range(5):
  3. # 请按下面的注释提示添加代码,完成相应功能
  4. #1.对score_dict字典进行初始化,数据从键盘输入,得到如任务描述中的字典
  5. ###### Begin ######
  6. if i ==0:
  7. key=input()
  8. value=input()
  9. score_dict[key]=value
  10. if i>0:
  11. key=input()
  12. value=eval(input())
  13. score_dict[key]=value
  14. ####### End #######
  1. score_dict = {}
  2. for i in range(5):
  3. # 请按下面的注释提示添加代码,完成相应功能
  4. #1.对score_dict字典进行初始化,数据从键盘输入,得到如任务描述中的字典
  5. ###### Begin ######
  6. key=input()
  7. value=input()
  8. if value.isdigit():
  9. value=eval(value)
  10. score_dict[key]=value
  11. ####### End #######

第二问,增减查修较为简单

  1. # 请按下面的注释提示添加代码,完成相应功能
  2. #2.请在此添加代码,实现对score_dict的添加、删除、查找、修改等操作,并打印输出相应的值
  3. ###### Begin ######
  4. score_dict['体育']=90
  5. print(score_dict.get('化学','不存在'))
  6. score_dict['语文']=100
  7. del score_dict['信息']
  8. print(score_dict)
  9. ####### End #######

第2关:字典的遍历

根据提示,在右侧编辑器补充代码,由列表创建字典,计算张三同学的总分,将总分作为新的键值对加入字典,最后输出字典中的所有键值对。

第二问注意一下要将非张三的数值加起来。最后输出的时候注意不能直接输出字典,要转化一下格式。

  1. # 创建并初始化score_dict字典
  2. score_list=['姓名','语文','英语','数学','体育']
  3. # 请按下面的注释提示添加代码,完成相应功能
  4. #1.根据上面的列表创建score_dict字典并初始化,得到如任务描述中的字典,字典中的值从键盘输入
  5. ###### Begin ######
  6. score_dict={}
  7. for key in score_list:
  8. if key=="姓名":
  9. value=input()
  10. score_dict[key]=value
  11. else:
  12. value=eval(input())
  13. score_dict[key]=value
  14. ####### End #######
  15. # 请按下面的注释提示添加代码,完成相应功能
  16. #2.请在此添加代码,计算张三同学的总分,并将总分作为新的键值对加入,最后输出score_dict的所有键值对
  17. ###### Begin ######
  18. sum1=0
  19. for i in score_dict.values():
  20. if i !='张三':
  21. sum1+=i
  22. score_dict["总分"]=sum1
  23. for k,v in score_dict.items():
  24. print(k,v)
  25. ####### End #######

第3关:字典和列表的嵌套

根据提示,在右侧编辑器补充代码,执行以下操作: 1.创建一个字典score_dict,里面包含三个列表,输出 2.创建一个列表score_list,里面包含两个字典,输出

  1. #创建空列表score_dict
  2. score_dict={}
  3. #每次循环生成一个键值对
  4. for i in range(3):
  5. #输入课程名作为字典的键
  6. key=input()
  7. # 创建空列表
  8. value_list=[]
  9. # 请按下面的注释提示添加代码,完成相应功能
  10. #1.从键盘输入两个分数,保存到列表中
  11. ###### Begin ######
  12. v1=eval(input())
  13. value_list.append(v1)
  14. v2=eval(input())
  15. value_list.append(v2)
  16. ####### End #######
  17. score_dict[key]=value_list
  18. print(score_dict)
  19. #创建空列表score_list
  20. score_list=[]
  21. #每次循环生成一个字典
  22. for i in range(2):
  23. # 创建空字典
  24. s_dict={}
  25. # 请按下面的注释提示添加代码,完成相应功能
  26. #2.对从键盘输入三门课程及成绩,保存到字典中
  27. ###### Begin ######
  28. for j in range(3):
  29. k=input()
  30. v=eval(input())
  31. s_dict[k]=v
  32. ####### End #######
  33. score_list.append(s_dict)

第4关:字典综合实训1-英文词频统计

本关任务:从键盘输入一串字符,统计字符串中出现次数最多的单词和次数,如果有多个相同的最多次数,需要输出多个单词及次数。

完成这个任务要解决以下难点:

1.非英文单词与大小写的归一化

2.空格分离时,“”项不能计数

3.字典的排序以及输出格式问题

  1. #输入的字符串中可包含".,~!@#$%^&*()+_/0123456789"等非英文单词字符
  2. WordStr = input()
  3. #stpe1:归一化处理
  4. WordStr=WordStr.lower()
  5. for ch in ".,~!@#$%^&*()+_/0123456789":
  6. WordStr=WordStr.replace(ch," ")
  7. #2分割字符串为列表,英文单词之间用空格分隔
  8. Wordlist=WordStr.split(" ")
  9. #3 统计每个单词的个数(列表或字典的方法)
  10. Worddict={}
  11. for word in Wordlist:
  12. if word in Worddict and word !="":
  13. Worddict[word]+=1
  14. elif word not in Worddict and word !='':
  15. Worddict[word]=1
  16. #字典排序,返回值是一个列表
  17. lis1=sorted(Worddict.items(),key=lambda x:x[1],reverse=True)
  18. #输出最高频率单词和次数 ,多个相同高频字也要输出
  19. for i in range(len(lis1)):
  20. if lis1[i][1]==lis1[0][1]:
  21. print(lis1[i][0],lis1[i][1])

第5关:字典综合实训2-整数翻译

本关任务:编写一个能将3位数以内的整数翻译成英文的程序。

本关注意点:整十和整百的处理,以及三位数英文之间的关联。

  1. #数字翻译成英文程序
  2. def unit_to_word(u): #将0~9的数字转换成英文,并返回转换后的英文
  3. # 请在下面编写代码
  4. # ********** Begin ********** #
  5. numlist1=([0,'zero'],[1,'one'],[2,'two'],[3,'three'],[4,'four'],[5,'five'],[6,'six'],[7,'seven'],[8,'eight'],[9,'nine'])
  6. numdict1=dict(numlist1)
  7. return numdict1[u]
  8. # ********** End ********** #
  9. # 请不要修改下面的代码
  10. def tens_to_word(t): #利用unit_to_word,将10~19、
  11. #以及20~99的十位部分数字转换成英文,并返回转换后的英文
  12. # 请在下面编写代码
  13. # ********** Begin ********** #
  14. if t<10:
  15. return unit_to_word(t)
  16. elif 10<=t<=19:
  17. numlist2=([10,'ten'],[11,'eleven'],[12,'twelve'],[13,'thirteen'],[14,'fourteen'],[15,'fifteen'],[16,'sixteen'],[17,'seventeen'],[18,'eighteen'],[19,'nineteen'])
  18. numdict2=dict(numlist2)
  19. return numdict2[t]
  20. elif 20<=t<=99:
  21. numlist3=([2,'twenty'],[3,'thirty'],[4,'forty'],[5,'fifty'],[6,'sixty'],[7,'seventy'],[8,'eighty'],[9,'ninety'])
  22. numdict3=dict(numlist3)
  23. if t%10==0:
  24. return numdict3[t//10]
  25. if t%10!=0:
  26. return numdict3[t//10]+" "+tens_to_word(t%10)
  27. # ********** End ********** #
  28. # 请不要修改下面的代码
  29. def hundreds_to_word(h): #利用unit_to_word、tens_to_word进行转换,并返回转换后结果的函数
  30. # 请在下面编写代码
  31. # ********** Begin ********** #
  32. if 0<=h<=99:
  33. return tens_to_word(h)
  34. if h%100!=0:
  35. if 100<h<=999:
  36. return tens_to_word(h//100)+' hundred and '+tens_to_word(h%100)
  37. if h%100==0:
  38. return tens_to_word(h//100)+' hundred'
  39. # ********** End ********** #
  40. # 请不要修改下面的代码
  41. test = eval(input())
  42. print(test, "==>", hundreds_to_word(test))

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

闽ICP备14008679号