python题!求大佬帮助?

1.首先,计算一个文件“grade.txt”中,保存的所有学生的数学成绩的总和与这些成绩的平均数。
2.(选做)找到数学成绩最好的和不及格的成绩,并给出提示在文件中的第几行?

import numpy as np


with open(r"C:\Users\Administrator\Desktop\grade.txt","r") as f: 

    row = []        #行号

    values = []     #成绩

    max_g = []      #最好成绩的行号

    bjg_g = []

    for num,value in enumerate(f):

        row.append(num)

        values.append(int(value.strip('\n')))

    group = [row, values]

    sum_n = sum(values)             #总成绩

    average_n = np.min(values)      #平均成绩

    max_n = max(values)             #最好成绩

    for index in range(len(values)):

        if values[index] == max_n:

            max_g.append(index+1)

        if values[index] < 60:

            bjg_g.append(index+1)


print('成绩总和:'+str(sum_n))

print("平均成绩:"+str(average_n))

print("成绩最好的行号:",end='')

print(max_g)

print("成绩不及格的行号:",end='')

print(bjg_g)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-23

import re


with open('F:\python\练习01\grade.txt','r',encoding="utf-8") as f :
strlist = f.readlines()
count = 1
dic = {}
for i in strlist:
grade_num = re.findall('(\d+)',i)[0]
dic[count] = int(grade_num)
count += 1
#现在处理字典就好了,没第一行的 就是 字典里的 count 值
num = sum(x for x in dic.values()) #总和
num1 = num / len(dic)  #平均分
num2 = max(dic.values())  # 最高分
num3 = min(dic.values())  # 最低分
print("总共分数:",num ,  "总人数:", len(dic),"平均分:",num1,"最高分:",num2,"最低分:",num3)
# 判断不及格的成绩 提示在文中第几行
num4 =[x for x in dic.values() if x < 60]  #不及格分数列表
for i in num4:
for key, value in dic.items():
if i == value:
print("第", key ,"行", value,"不及格")

本回答被网友采纳
相似回答