赞
踩
解题的过程不仅仅是解决一个问题,各位大佬们常说,经常不敲代码就会忘的一干二净,就像我们如果不每天走路就会忘记走路,这个例子虽然有些离谱,但是是有一定的道理的。每天写一点,可以复习旧知识:
目录
输入文件:
其中三列:学号、姓名、成绩
列之间用逗号分隔,比如”101,xiaozhang,88"
行之间用\n换行分隔
输出:做最高分、最低分、平均分
lambda函数,切片,sort()函数,文件的读取。
- def Read_File():
- result=[]#设置一个空的列表,用来放从文件中获取的数据
- with open("./Max、Min、") as fin:#读取文件的标准格式
- for line in fin:
- line=line[:-1]#去掉末尾的一个字符
- result.append(line.split(','))#去掉成绩文件中每一行的“,”
- return result
-
- def Read_File_sort_max(dates):
- a=max(dates,key=lambda x:int(x[2]))#如不清楚,可以看菜鸟教程中的解释,是相当清楚的
- return a[2]#取得每一行的第三个元素
- def Read_File_sort_min(dates):
- a= min(dates,key=lambda x:int(x[2]))
- return a[2]
- def Read_File_sort_average(dates):
- sum=0
- i=0
- for line in dates:
- i+=1
- sum+=int(line[2])
- result=sum/i
- return result
-
- #读取数据并保存
- dates=Read_File()
- print("读取的字符串数据为:",dates)
-
- #获取最大值
- max=Read_File_sort_max(dates)
- print("对字符串数据,提取的最大值为:",max)
-
- 获得最小值
- min=Read_File_sort_min(dates)
- print("对字符串数据,提取的最小值为:",min)
-
- #取得平均值
- average_grade=Read_File_sort_average(dates)
- print("对字符串数据,提取的成绩平均值为:",average_grade)
-
-

- def Read_file():
- result = []
- with open("./students_grade.txt") as fin:
- for line in fin: #读取每一行
- line=line[:-1]#将每行的数据的末尾换行符去掉,区别切片[::-1]是对元素进行反序
- result.append(line.split(","))##需要将每一行的数据加入列表并且去掉“,”
- return result
-
- def Soreted(datas):
- return sorted(datas,key=lambda x:int(x[2]),reverse=True)##在这里需要将字符转化为数字True为降序,key为啥
- #就是依据什么来排序,reverse=False则为升序排序
-
-
- def Write_file(datas):
- with open("sorted_students","w") as fout:
- for data in datas:
- fout.write(",".join(data)+'\n')#把排序好的成绩,序号,分隔每一行结束用逗号分隔。
-
- #读入文件
- datas=Read_file()
- print("读入文件后的数据为:",datas)
-
- #对数据进行排序
-
- datas=Soreted(datas)
- print("读入排序后的数据为:",datas)
-
- #写入数据
- Write_file(datas)
- print("读入排序后的数据为:",datas)

- 101,xaiozhang,88
- 102,小东,99
- 103,xaiosun,67
- 104,xaiozhai,100
- 105,xaiokui,99
- 106,xaiohu,67
- 107,xaiiwang,97
- 读取的字符串数据为: [['101', 'xaiozhang', '88'], ['102', '灏忎笢', '99'], ['103', 'xaiosun', '67'], ['104', 'xaiozhai', '100'], ['105', 'xaiokui', '99'], ['106', 'xaiohu', '67'], ['107', 'xaiiwang', '97']]
- 对字符串数据,提取的最大值为: 100
- 对字符串数据,提取的最小值为: 67
- 对字符串数据,提取的成绩平均值为: 88.14285714285714
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。