python求最大值最小值遇到问题

求最大值最小值平均值报错卡住不会了

def compute_score():
    score = []
    with open('D:/桌面/第15章资料/chengji.txt', 'w', encoding='UTF-8') as fin:
        for line in fin:
            line = line[:-1]
            fields = line.split(',')
            score.append(int(fields[-1]))
    max_score = max(score)
    min_score = min(score)
    avg_score = round(sum(score) / len(score), 2)
    return max_score, min_score, avg_score


max_score, min_score, avg_score = compute_score
print(f'最高分{max_score},最低分{min_score}平均分{avg_score}')

报错代码

    max_score, min_score, avg_score = compute_score
TypeError: cannot unpack non-iterable function object


给你修改好了

def compute_score():
    score = []
    with open('D:/桌面/第15章资料/chengji.txt', 'w', encoding='UTF-8') as fin:
        for line in fin:
            line = line[:-1]
            fields = line.split(',')
            score.append(int(fields[-1]))
    max_score = max(score)
    min_score = min(score)
    avg_score = round(sum(score) / len(score), 2)
    return max_score, min_score, avg_score
 
 
max_score, min_score, avg_score = compute_score()
print(f'最高分{max_score},最低分{min_score}平均分{avg_score}')
 

compute_score是个函数,调用的时候要加(),14行改成这样:

max_score, min_score, avg_score = compute_score()

有帮助的话,请点采纳

该回答引用ChatGPT

错误的原因是您忘记调用 compute_score 函数,应该改为:

max_score, min_score, avg_score = compute_score()

另外,您在读取文件的时候使用的是写入模式('w'),这会导致文件内容被清空,您应该使用读取模式('r')来读取文件内容:

with open('D:/桌面/第15章资料/chengji.txt', 'r', encoding='UTF-8') as fin:

修正的代码

def compute_score():
    score = []
    with open('D:/桌面/第15章资料/chengji.txt', 'r', encoding='UTF-8') as fin:
        for line in fin:
            line = line[:-1]
            fields = line.split(',')
            score.append(int(fields[-1]))
    max_score = max(score)
    min_score = min(score)
    avg_score = round(sum(score) / len(score), 2)
    return max_score, min_score, avg_score
 
 
max_score, min_score, avg_score = compute_score()
print(f'最高分{max_score},最低分{min_score}平均分{avg_score}')