当前位置:   article > 正文

剑指offer——牛客网 力扣——day3_剑指offer用牛客还是力扣

剑指offer用牛客还是力扣

统计学生的成绩高分低分平均分 

解题的过程不仅仅是解决一个问题,各位大佬们常说,经常不敲代码就会忘的一干二净,就像我们如果不每天走路就会忘记走路,这个例子虽然有些离谱,但是是有一定的道理的。每天写一点,可以复习旧知识:

目录

统计学生的成绩高分低分平均分 

1、题目要求:

2、涉及的知识点:

3、代码实现过程:

1)读取提前存入的文件

2)定义一个取得最大成绩的函数

3)定义一个取得最小成绩的函数

4)定义一个取得平均分函数

5)对定义的函数进行调用

4.总体代码过程:

1)源码(可copy)

2)文件

3)输出结果


1、题目要求:


输入文件:


其中三列:学号、姓名、成绩
列之间用逗号分隔,比如”101,xiaozhang,88"
行之间用\n换行分隔

 

输出:做最高分、最低分、平均分

2、涉及的知识点:

lambda函数,切片,sort()函数,文件的读取。

3、代码实现过程:

1)读取提前存入的文件

  1. def Read_File():
  2. result=[]#设置一个空的列表,用来放从文件中获取的数据
  3. with open("./Max、Min、") as fin:#读取文件的标准格式
  4. for line in fin:
  5. line=line[:-1]#去掉末尾的一个字符
  6. result.append(line.split(','))#去掉成绩文件中每一行的“,”
  7. return result

2)定义一个取得最大成绩的函数

  1. def Read_File_sort_max(dates):
  2. a=max(dates,key=lambda x:int(x[2]))#如不清楚,可以看菜鸟教程中的解释,是相当清楚的
  3. return a[2]#取得每一行的第三个元素

3)定义一个取得最小成绩的函数

  1. def Read_File_sort_min(dates):
  2. a= min(dates,key=lambda x:int(x[2]))
  3. return a[2]

4)定义一个取得平均分函数

  1. def Read_File_sort_average(dates):
  2. sum=0
  3. i=0
  4. for line in dates:
  5. i+=1
  6. sum+=int(line[2])
  7. result=sum/i
  8. return result

5)对定义的函数进行调用

  1. #读取数据并保存
  2. dates=Read_File()
  3. print("读取的字符串数据为:",dates)
  4. #获取最大值
  5. max=Read_File_sort_max(dates)
  6. print("对字符串数据,提取的最大值为:",max)
  7. 获得最小值
  8. min=Read_File_sort_min(dates)
  9. print("对字符串数据,提取的最小值为:",min)
  10. #取得平均值
  11. average_grade=Read_File_sort_average(dates)
  12. print("对字符串数据,提取的成绩平均值为:",average_grade)

4.总体代码过程:

1)源码(可copy)

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

2)文件

  1. 101,xaiozhang,88
  2. 102,小东,99
  3. 103,xaiosun,67
  4. 104,xaiozhai,100
  5. 105,xaiokui,99
  6. 106,xaiohu,67
  7. 107,xaiiwang,97

3)输出结果

  1. 读取的字符串数据为: [['101', 'xaiozhang', '88'], ['102', '灏忎笢', '99'], ['103', 'xaiosun', '67'], ['104', 'xaiozhai', '100'], ['105', 'xaiokui', '99'], ['106', 'xaiohu', '67'], ['107', 'xaiiwang', '97']]
  2. 对字符串数据,提取的最大值为: 100
  3. 对字符串数据,提取的最小值为: 67
  4. 对字符串数据,提取的成绩平均值为: 88.14285714285714

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

闽ICP备14008679号