当前位置:   article > 正文

【头歌-Python】Python第七章作业_头歌第七章集合与字典作业答案

头歌第七章集合与字典作业答案

第1关:字符串去重排序

  1. n = input()
  2. a = list(set(n))
  3. a.sort()
  4. a = ''.join(a).strip()
  5. print(a)

第2关:列表去重

  1. a = input().split(',')
  2. c=[]
  3. [c.append(i) for i in a if i not in c]
  4. print(c)

第3关:猜年龄

  1. for i in range(10,1000):
  2. if(pow(i,3)>=10000) or (pow(i,4)>=1000000):
  3. break
  4. if(pow(i,4)<100000):
  5. continue
  6. str1 = str(pow(i,3))+str(pow(i,4))
  7. a = set(str1)
  8. if len(a)==10:
  9. print(i)
  10. break

第4关:集合的属性、方法与运算

  1. n = int(input())
  2. name = input()
  3. MySet = set(name.split(' '))
  4. for i in range(n):
  5. ls = input().split(' ')
  6. if ls[0]=='print':
  7. print(sorted(list(MySet)))
  8. elif ls[0]=='del':
  9. MySet.discard(ls[1])
  10. elif ls[0]=='clear':
  11. MySet.clear()
  12. elif ls[0]=='add':
  13. MySet.add(ls[1])
  14. elif ls[0]=="update":
  15. MySet.update(set(ls[1:]))

第5关:集合介绍

  1. def average(array):
  2. a = set(array)
  3. length = len(a)
  4. sumnum = sum(a)
  5. return sumnum/length
  6. if __name__ == '__main__':
  7. arr = list(map(int, input().split()))
  8. result = average(arr)
  9. print(result)

第6关:手机销售统计

  1. with open('/data/bigfiles/sale2019.csv', 'r', encoding='utf-8') as data2019:
  2. sale2019 = [line.strip().split(',')[0] for line in data2019]
  3. with open('/data/bigfiles/sale2018.csv', 'r', encoding='utf-8') as data2018:
  4. sale2018 = [line.strip().split(',')[0] for line in data2018]
  5. n = int(input())
  6. if n==1:
  7. print(sorted(sale2019))
  8. print(sorted(sale2018))
  9. if n==2:
  10. print(sorted([x for x in sale2019 if x in sale2018]))
  11. if n==3:
  12. print(sorted(sale2019+[x for x in sale2018 if x not in sale2019]))
  13. if n==4:
  14. print(sorted([x for x in sale2019 if x not in sale2018]))
  15. if n==5:
  16. print(sorted([x for x in sale2019 if x not in sale2018]+[x for x in sale2018 if x not in sale2019]))

第7关:集合添加元素

  1. N = int(input())
  2. s = set()
  3. for i in range(N):
  4. s.add(input())
  5. print(len(s))

第8关:列表嵌套字典的排序

  1. n = int(input())
  2. list = []
  3. for i in range(n):
  4. dic = {}
  5. name_age = input().split()
  6. dic.update({'name':name_age[0], 'age':int(name_age[1])})
  7. list.append(dic)
  8. print(sorted(list,key = lambda x : x['age']))
  9. print(sorted(list,key = lambda x : x['name']))

第9关:绩点计算

  1. dic = {'A':4.0,'A-':3.7,'B+':3.3,'B':3.0,'B-':2.7,'C+':2.3,'C':2.0,'C-':1.5,'D':1.3,'D-':1.0,'F':0}
  2. sum = 0
  3. num = 0
  4. while True:
  5. a = input()
  6. if a=='-1':
  7. print(f'{sum/num:.2f}')
  8. break
  9. else:
  10. b = int(input())
  11. sum = sum+b*dic[a]
  12. num = num+b

第10关:通讯录(MOD)

  1. print({'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']})
  2. print()
  3. dict = {'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']}
  4. # 学生通讯录管理系统主界面
  5. def Menu():
  6. print("欢迎使用PYTHON学生通讯录")
  7. print("1:添加学生")
  8. print("2:删除学生")
  9. print("3:修改学生信息")
  10. print("4:搜索学生")
  11. print("5:显示全部学生信息")
  12. print("6:退出并保存")
  13. def addstuInof():
  14. name = input()
  15. if len(name) ==0:
  16. print("ERROR")
  17. else:
  18. stu_num = input()
  19. zuanye = input()
  20. dict[name] = [stu_num,zuanye]
  21. print('Success')
  22. print(dict)
  23. def delstuInof():
  24. name = input()
  25. del dict[name]
  26. print('Success')
  27. print(dict)
  28. def modifystuInfo():
  29. name = input()
  30. if name in dict:
  31. stu_num = input()
  32. zuanye = input()
  33. dict[name] = [stu_num,zuanye]
  34. print('Success')
  35. print(dict)
  36. else:
  37. print('No Record')
  38. print(dict)
  39. def seckstuIofo():
  40. name = input()
  41. print(dict[name])
  42. def showstuInfo():
  43. print(dict)
  44. def exitSystem():
  45. pass
  46. if __name__ == '__main__':
  47. Menu()
  48. num = int(input())
  49. if num == 1:
  50. addstuInof()
  51. elif num == 2:
  52. delstuInof()
  53. elif num == 3:
  54. modifystuInfo()
  55. elif num == 4:
  56. seckstuIofo()
  57. elif num == 5:
  58. showstuInfo()
  59. elif num == 6:
  60. exitSystem()
  61. print("ERROR")

第11关:字典增加元素

  1. dict1 = {'赵小明': '13299887777', '特明朗': '814666888', '普希京': '522888666', '吴小京': '13999887777'}
  2. name = input()
  3. phonenum = input()
  4. if name in dict1:
  5. print('您输入的姓名在通讯录中已存在')
  6. else:
  7. dict1[name] = phonenum
  8. for i in dict1:
  9. print(i + ':' + dict1[i])

第12关:字典的属性、方法与应用

  1. n = int(input())
  2. name = input().split(',')
  3. phonenum = input().split(',')
  4. dic = dict(zip(name, phonenum))
  5. for i in range(n):
  6. list = input().split(' ')
  7. if list[0]=='key':
  8. print([x for x in dic])
  9. elif list[0]=='value':
  10. print([dic[x] for x in dic])
  11. elif list[0]=='print':
  12. print(dic)
  13. elif list[0]=='clear':
  14. dic.clear()
  15. elif list[0]=='add':
  16. dic[list[1]] = list[2]
  17. elif list[0]=='update':
  18. dic.update({list[1] : list[2]})
  19. elif list[0]=='del':
  20. if list[1] in dic:
  21. del dic[list[1]]
  22. else:
  23. print('键不存在')

第13关:查询省会

  1. capitals = {'湖南':'长沙','湖北':'武汉','广东':'广州','广西':'南宁','河北':'石家庄','河南':'郑州','山东':'济南','山西':'太原','江苏':'南京','浙江':'杭州','江西':'南昌','黑龙江':'哈尔滨','新疆':'乌鲁木齐','云南':'昆明','贵州':'贵阳','福建':'福州','吉林':'长春','安徽':'合肥','四川':'成都','西藏':'拉萨','宁夏':'银川','辽宁':'沈阳','青海':'西宁','海南':'海口','甘肃':'兰州','陕西':'西安','内蒙古':'呼和浩特','台湾':'台北','北京':'北京','上海':'上海','天津':'天津','重庆':'重庆','香港':'香港','澳门':'澳门'}
  2. while True:
  3. name = input()
  4. if len(name)==0:
  5. break
  6. else:
  7. if name not in capitals:
  8. print('输入错误')
  9. else:
  10. print(capitals[name])

第14关:英汉词典

  1. import string
  2. def read_to_dic(filename):
  3. """读文件每行根据空格切分一次,作为字典的键和值添加到字典中。
  4. 返回一个字典类型。
  5. """
  6. my_dic = {}
  7. with open('/data/bigfiles/dicts.txt', 'r', encoding='utf-8') as f:
  8. date = f.readlines()
  9. for x in date:
  10. x = x.replace('生存,','生存 ') #文档有问题,测试点过不去
  11. x = x.strip().split(maxsplit=1)
  12. my_dic.update({x[0]: x[1]})
  13. return my_dic
  14. def sentence_to_lst(my_str):
  15. """将句子里的's 用 is 替换,n't 用 not 替换。
  16. 所有符号替换为空格,再根据空格切分为列表。
  17. 返回列表。
  18. """
  19. my_str = my_str.replace("n't", ' not')
  20. my_str = my_str.replace("'s", ' is')
  21. for x in string.punctuation:
  22. my_str = my_str.replace(x, ' ')
  23. lst = my_str.split(' ')
  24. return lst
  25. def query_words(lst,dic):
  26. """接收列表和字典为参数,对列表中的单词进行遍历,
  27. 将单词字母转小写,到字典中查询单词的中文意义并输出。
  28. 若单词在字典中不存在,输出'自己猜'。
  29. """
  30. for word in lst:
  31. if word == '':
  32. continue
  33. word = word.lower()
  34. print(word, dic.get(word, '自己猜'))
  35. if __name__ == '__main__':
  36. my_str = input()
  37. file = 'dicts.txt'
  38. dic = read_to_dic(file)
  39. lst = sentence_to_lst(my_str)
  40. query_words(lst, dic)

第15关:通讯录(添加)

  1. print({'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']})
  2. print()
  3. dict = {'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']}
  4. def Menu():
  5. print("欢迎使用PYTHON学生通讯录")
  6. print("1:添加学生")
  7. print("2:删除学生")
  8. print("3:修改学生信息")
  9. print("4:搜索学生")
  10. print("5:显示全部学生信息")
  11. print("6:退出并保存")
  12. def addstuInof():
  13. name = input()
  14. if name in dict:
  15. print('Fail')
  16. print(dict)
  17. else:
  18. sno = input()
  19. spet = input()
  20. dict[name] = [sno,spet]
  21. print('Success')
  22. print(dict)
  23. def delstuInof():
  24. name = input()
  25. if len(name) == 0:
  26. print("ERROR")
  27. else:
  28. del dict[name]
  29. print('Success')
  30. print(dict)
  31. def modifystuInfo():
  32. name = input()
  33. if name in dict:
  34. stu_num = input()
  35. zuanye = input()
  36. dict[name] = [stu_num,zuanye]
  37. print('Success')
  38. print(dict)
  39. else:
  40. print('Fail')
  41. print(dict)
  42. def seckstuIofo():
  43. name = input()
  44. print(dict[name])
  45. def showstuInfo():
  46. print(dict)
  47. def exitSystem():
  48. pass
  49. if __name__ == '__main__':
  50. Menu()
  51. num = int(input())
  52. if num == 1:
  53. addstuInof()
  54. elif num == 2:
  55. delstuInof()
  56. elif num == 3:
  57. modifystuInfo()
  58. elif num == 4:
  59. seckstuIofo()
  60. elif num == 5:
  61. showstuInfo()
  62. elif num == 6:
  63. exitSystem()
  64. print("ERROR")

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

闽ICP备14008679号