从键盘输入若干成绩,可输出频数,最高分,最低分,平均分等统计结果,要求:先输入学生人数,然后根据人数依次输入成绩,结束后输出统计结果。
基于new bing的编写:
【运行 截图:】
【代码:】
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)