python大学排行榜
1 def read_file(file): 2 """@参数 file:文件名,字符串类型 3 读文件中的学校名到列表中,返回排名前10学校集合,集合类型。 4 """ 5 s = set() 6 f = open(file, 'r', encoding='utf-8')# 打开要去掉空行的文件 7 l = f.readlines() 8 for j in l: 9 if file == "soft.txt": 10 j = j.split(" ") 11 j[1] = j[1][:-1] 12 else: 13 j = j.split(" ") 14 if int(j[0])<=10: 15 s.add(j[1]) 16 else: 17 break 18 return s 19 20 21 def either_in_top(alumni, soft): 22 """ 23 @参数 alumni:alumni大学排行榜中排名前10的学校的集合,集合类型 24 @参数 soft:soft大学排行榜中排名前10的学校的集合,集合类型 25 接收两个排行榜前10高校名字集合,返回在这两个排行榜中均名列前10的学校名。 26 """ 27 return (alumni & soft) 28 29 30 def all_in_top(alumni, soft): 31 """ 32 @参数 alumni:alumni大学排行榜中排名前10的学校的集合,集合类型 33 @参数 soft:soft大学排行榜中排名前10的学校的集合,集合类型 34 接收两个排行榜前10高校名字集合, 35 返回在两个榜单中名列前10的所有学校名。 36 """ 37 return (alumni | soft) 38 39 40 def only_alumni(alumni, soft): 41 """ 42 @参数 alumni:alumni大学排行榜中排名前10的学校的集合,集合类型 43 @参数 soft:soft大学排行榜中排名前10的学校的集合,集合类型 44 接收两个排行榜前10高校名字集合,返回在alumni榜单中名列前10但soft榜单中未进前10的学校名。 45 """ 46 47 return (alumni.difference(soft)) 48 49 50 def only_one(alumni, soft): 51 """ 52 @参数 alumni:alumni大学排行榜中排名前10的学校的集合,集合类型 53 @参数 soft:soft大学排行榜中排名前10的学校的集合,集合类型 54 接收两个排行榜前10高校名字集合,返回在alumni和soft榜单中名列前10, 55 但不同时出现在两个榜单的学校名。 56 """ 57 either_rank = either_in_top(alumni_set, soft_set) 58 all_rank = all_in_top(alumni_set, soft_set) 59 return (all_rank.symmetric_difference(either_rank)) 60 61 62 if __name__ == '__main__': 63 alumni_set = read_file('alumni.txt') #路径像我一样就要.py文件和.txt文件放在相同目录下 64 soft_set = read_file('soft.txt') 65 either_rank = either_in_top(alumni_set, soft_set) 66 all_rank = all_in_top(alumni_set, soft_set) 67 only_in_alumni_rank = only_alumni(alumni_set, soft_set) 68 alumni_soft_rank = only_one(alumni_set, soft_set) 69 print(either_in_top(alumni_set, soft_set)) 70 print("\n") 71 print(f'两榜单中均名列前10的学校{either_rank}') 72 print("\n") 73 print(f'两榜单名列前10的所有学校{all_rank}') 74 print("\n") 75 print(f'alumni中名列前10,soft中未进前10的学校{only_in_alumni_rank}') 76 print("\n") 77 print(f'不同时出现在两个榜单前10的学校{alumni_soft_rank}')


浙公网安备 33010602011771号