从键盘输入若干成绩,可输出频数

从键盘输入若干成绩,可输出频数,最高分,最低分,平均分等统计结果,要求:先输入学生人数,然后根据人数依次输入成绩,结束后输出统计结果。

基于new bing的编写:
【运行 截图:】

img

【代码:】

def score_statistics():
    n = int(input("请输入学生人数:"))
    scores = []
    for i in range(n):
        score = float(input(f"请输入第{i+1}个学生的成绩:"))
        scores.append(score)
    
    # 频数统计
    frequency = {}
    for score in scores:
        if score not in frequency:
            frequency[score] = 1
        else:
            frequency[score] += 1
    
    # 最高分、最低分、平均分统计
    max_score = max(scores)
    min_score = min(scores)
    avg_score = sum(scores) / len(scores)
    
    # 输出结果
    print("成绩频数统计:")
    for score, freq in frequency.items():
        print(f"{score}: {freq}")
    print(f"最高分:{max_score}")
    print(f"最低分:{min_score}")
    print(f"平均分:{avg_score}")

# 测试
score_statistics()


n = int(input("请输入学生人数: "))
grades = []      # 保存成绩的列表

# 循环读取每个学生的成绩并保存到列表中
for i in range(n):
    grade = float(input("请输入第 %d 个学生的成绩: " % (i+1)))
    grades.append(grade)

# 对成绩列表进行统计
freq = {}    # 保存每个成绩出现次数的字典
total = 0    # 保存成绩的总和
max_grade = grades[0]    # 最高分
min_grade = grades[0]    # 最低分

for grade in grades:
    if grade in freq:
        freq[grade] += 1
    else:
        freq[grade] = 1
    total += grade
    if grade > max_grade:
        max_grade = grade
    if grade < min_grade:
        min_grade = grade

avg_grade = total / n    # 平均分

# 输出统计结果
print("成绩    频数")
for grade, f in freq.items():
    print("%3.1f    %d" % (grade, f))
print("最高分:", max_grade)
print("最低分:", min_grade)
print("平均分: %.1f" % avg_grade)