python读取文件对最高分最低分及其对应名字进行输出

问题遇到的现象和发生背景

【问题描述】从一个文本文件内读入任意多个学生的分数,求出最高分,最低分和平均分存入文件result.txt内。

【输入形式】一个文件,文件中分数之间由换行隔开,输入的文件名为namegrade.txt。输入的分数都是整数。

【输出形式】计算出namegrade.txt中所有分数的最高分、最低分及其学生名字和平均分并分3行存入result.txt的文件内,最高分最低分学生姓名多于一人时,按升序输出。平均分保留1位小数。具体格式参考输出样例。

输出第一行为最高分;第二行为最低分;第三行为平均分。

【样例输入文件namegrade.txt】

张兰 60

李广 80

王小刚 80

【样例输出文件result.txt】

Max 80 李广 王小刚

Min 60 张兰

Average 73.3

【说明】

namegrade.txt文件中的数据已提供,编程读入namegrade.txt文件数据并处理,并把结果保存到result.txt文件中。

【评分标准】

用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

已经帮你写完了示例代码,望采纳

# 读入文件
with open('namegrade.txt') as f:
    data = f.readlines()

# 初始化变量
max_grade = 0
min_grade = 100
total_grade = 0
max_names = []
min_names = []

# 遍历每一行数据
for line in data:
    # 分割学生名和分数
    name, grade = line.split()
    # 转换为整型
    grade = int(grade)
    # 累加总分
    total_grade += grade
    # 更新最高分和最低分
    if grade > max_grade:
        max_grade = grade
        max_names = [name]
    elif grade == max_grade:
        max_names.append(name)
    if grade < min_grade:
        min_grade = grade
        min_names = [name]
    elif grade == min_grade:
        min_names.append(name)

# 计算平均分
average_grade = round(total_grade / len(data), 1)

# 写入结果文件
with open('result.txt', 'w') as f:
    f.write(' '.join(max_names) + '\n')
    f.write(' '.join(min_names) + '\n')
    f.write(str(average_grade))

上面的代码使用了文件的读写操作来解决问题。首先通过 open() 函数打开输入文件,然后用 readlines() 函数读入每一行的数据到一个列表中。

接下来遍历列表,把每一行数据分割为学生名和分数,然后把分数转换为整型。累加总分,并更新最高分和最低分。

最后,计算平均分,并把最高分和最低分的学生名和平均分分别写入输出文件。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632