下面是解答:
n = int(input())
score_per = []
number_per = []
low = []
for i in range(n):
s = input()
s = s.split(' ')
number_per.append(s[0])
score_per.append(int(s[1]))
score_aver = round(sum(score_per) / n,1)
for scr in range(len(score_per)):
if score_per[scr] < score_aver:
low.append(number_per[scr])
print(score_aver)
for per in low:
print(per)
但是,如果脱离题目考虑,这个程序也可以设计得更有“人情味”:
n = int(input('请输入待评估的学生总数:'))
score_per = []
number_per = []
low = []
for i in range(n):
s = input('请按照格式输入学生学号和分数:')
s = s.split(' ')
number_per.append(s[0])
score_per.append(int(s[1]))
score_aver = round(sum(score_per) / n,1)
for scr in range(len(score_per)):
if score_per[scr] < score_aver:
low.append(number_per[scr])
print(f'平均成绩为:{score_aver}分。\n下面是本次低于平均分的学生的学号:')
if len(low) != 0:
for per in low:
print(per)
else:
print('本次没有低于平均分的同学。')
希望对您有帮助!
n = int(input('小组人数:'))
score_dict = {}
score_sum = 0
for i in range(n):
score_list = input().split(" ")
sno = score_list[0] # 学号
score = float(score_list[1]) # 分数
# print(sno, score)
score_dict[sno] = score # 添加进字典
score_sum += score # 统计分数
average_score = round(score_sum / n, 1) # 求平均值,保留1位小数
print(average_score) # 输出平均分
dict1 = sorted(score_dict.items(), key=lambda x: x[0]) # 按key排序
# print(dict1)
for sno, sc in dict1:
# 判断分数是否低于平均分
if sc < average_score:
print(sno) # 输出学号