当前位置:   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. n = input().split(',')
  2. a = []
  3. [a.append(i) for i in n if i not in a]
  4. print(a)

第3关 猜年龄

  1. dig = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
  2. age1 = 0
  3. age2 = 0
  4. while age1 **3 < 10000:
  5. age1 += 1
  6. while True:
  7. b = age2**4
  8. if b >= 100000 and b < 1000000:
  9. break
  10. age2 += 1
  11. for i in range(age2,age1):
  12. num1 = i**3
  13. num2 = i**4
  14. set1 = set()
  15. for j in str(num1):
  16. set1.add(j)
  17. for k in str(num2):
  18. set1.add(k)
  19. if len(set1) == len(dig):
  20. print(i)

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

  1. n = int(input()) # 输入一个正整数 n
  2. name = input() # 吉林,湖北,湖南
  3. MySet = set(name.split())
  4. MyList = name.split()
  5. for i in range(n):
  6. ls = input().split() # 输入命令及参数,之间用空格分隔
  7. if ls[0] == 'print': # 如要输入的命令是“print”,输出字典
  8. print(sorted(list(MySet)))
  9. elif ls[0] == 'update': # 如要输入的命令是“update”,更新ls[1]表示的键对应的值
  10. MySet.update(set(ls[1:]))
  11. elif ls[0] == 'add': # 如要输入的命令是“add”,增加一个键值对,题目确保输入的键在字典中不存在
  12. MySet.add(ls[1])
  13. elif ls[0] == 'del': # 如要输入的命令是“del”,删除字典中指定的键值对,键不存在时返回“键不存在”
  14. MySet.discard(ls[1])
  15. elif ls[0] == 'clear': # 如要输入的命令是“clear”,清空字典中全部元素
  16. MySet.clear()

第5关 集合介绍

  1. def average(array):
  2. # 你的代码写在这里
  3. return sum(set(array))/len(set(array))
  4. if __name__ == '__main__':
  5. arr = list(map(int, input().split()))
  6. result = average(arr)
  7. 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 = 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 + sale2018) if x not in[x for x in sale2019 if x in sale2018]]))

第7关 集合添加元素

  1. n = int(input())
  2. lis = []
  3. for i in range(n):
  4. a = input()
  5. lis.append(a)
  6. print(len(set(lis)))

第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. s = 0
  3. n = 0
  4. while True:
  5. a = input()
  6. if a != '-1':
  7. b = int(input())
  8. s += dic[a] * b
  9. n += b
  10. else:
  11. print(f'{s/n:.2f}')
  12. break

第10关 通讯录(MOD)

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

第11关 字典增加元素

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

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

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

第13关 查询省会

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

第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(sentence):
  15. """将句子里的's 用 is 替换,n't 用 not 替换。
  16. 所有符号替换为空格,再根据空格切分为列表。
  17. 返回列表。
  18. """
  19. sentence = sentence.replace("n't", ' not')
  20. sentence = sentence.replace("'s", ' is')
  21. for x in string.punctuation:
  22. sentence = sentence.replace(x, ' ')
  23. sentence_lst = sentence.split()
  24. return sentence_lst
  25. def query_words(sentence_lst, my_dic):
  26. """接收列表和字典为参数,对列表中的单词进行遍历,
  27. 将单词字母转小写,到字典中查询单词的中文意义并输出。
  28. 若单词在字典中不存在,输出'自己猜'。
  29. """
  30. for word in sentence_lst:
  31. word = word.lower()
  32. print(word, my_dic.get(word, '自己猜'))
  33. if __name__ == '__main__':
  34. my_str = input()
  35. file = 'dicts.txt'
  36. dic = read_to_dic(file)
  37. lst = sentence_to_lst(my_str)
  38. query_words(lst, dic)

第15关 通讯录(添加)

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

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

闽ICP备14008679号