Python初级考试问题

用循环输入5个数(95.80.86.89.94)存储到列表,去掉一个最高分,去掉一个最低分,求平均分(不得使用内置函数max,min,avg,sum等)。打印格式为:去掉最高分XX分,去掉最低XX分,平均分为XX分。

img


scores = [95, 80, 86, 89, 94]
max_score = scores[0]
min_score = scores[0]
max_index = 0
min_index = 0

# 找到最高分和最低分的下标
for i in range(len(scores)):
    if scores[i] > max_score:
        max_score = scores[i]
        max_index = i
    if scores[i] < min_score:
        min_score = scores[i]
        min_index = i

# 删除最高分和最低分
scores.pop(max_index)
scores.pop(min_index - 1 if max_index > min_index else min_index)

# 计算平均分
total_score = 0
for score in scores:
    total_score += score
avg_score = total_score / len(scores)

# 打印结果
print("去掉最高分{}分,去掉最低{}分,平均分为{}分".format(max_score, min_score, avg_score))

scores = [] 

for i in range(5):
    score = int(input("请输入第{}个分数:".format(i+1)))
    scores.append(score)

min_idx, max_idx = 0, 0 
for i in range(1, 5):
    if scores[i] < scores[min_idx]:
        min_idx = i
    elif scores[i] > scores[max_idx]:
        max_idx = i
scores.pop(max_idx)
scores.pop(min_idx)

total_score = 0
for score in scores:
    total_score += score
avg_score = total_score / len(scores)

print("去掉最高分{}分,去掉最低{}分,平均分为{}分".format(scores[max_idx], scores[min_idx], round(avg_score, 2)))


lst = []
for i in range(5):
    n = int(input('请输入第%d个数:' % (i+1)))
    lst.append(n)

# 找到最高分和最低分
m = lst[0]
mi = lst[0]
for s in lst:
    if s > m:
        m = s
    if s < mi:
        mi = s

# 去掉最高分和最低分
lst.remove(m)
lst.remove(mi)

# 计算平均分
total = 0
for s in lst:
    total += s
avg = total / len(lst)

# 打印输出
print('去掉最高分%d分,去掉最低%d分,平均分为%.2f分。' % (m, mi, avg))