酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

7-7 各科成绩统计值计算 分数 5 作者 yqhyzy 单位 上海海洋大学 要求:顺序生成n个学生的学号及语文、数学和英语成绩,然后分别计算输出各科成绩的平均分、标准差及中位数(保留两位小数)。其中n由input()输入,学生学号从2023101开始顺序编号,各科成绩由randint生成[60,100]中的随机整数,随机数种子设为10, n为5时生成的数据及输出结果如下所示。 [['学号', '语文', '数学', '外语'], ['2023101', '96', '62', '87'], ['2023102', '90', '96', '60'], ['2023103', '73', '89', '91'], ['2023104', '77', '70', '62'], ['2023105', '93', '91', '80']]

首先,我们需要导入所需的库,然后定义一个函数来计算各科成绩的平均分、标准差和中位数。根据输入的学生数量n,生成学生学号及各科成绩,并调用函数计算输出结果。 解析: 1. 导入random库 2. 定义一个函数calculate_statistics,输入为各科成绩列表,输出为平均分、标准差和中位数 3. 获取输入的学生数量n 4. 生成学生学号及各科成绩 5. 调用calculate_statistics函数计算各科成绩的统计值 6. 输出结果 代码如下: ```python import random def calculate_statistics(scores): n = len(scores) average = sum(scores) / n variance = sum([(x - average) 2 for x in scores]) / n std_dev = variance 0.5 sorted_scores = sorted(scores) median = (sorted_scores[n // 2] + sorted_scores[-(n // 2 + 1)]) / 2 return round(average, 2), round(std_dev, 2), round(median, 2) n = int(input("请输入学生数量:")) random.seed(10) students = [['学号', '语文', '数学', '外语']] for i in range(n): student_id = 2023101 + i chinese = random.randint(60, 100) math = random.randint(60, 100) english = random.randint(60, 100) students.append([student_id, chinese, math, english]) print(students) chinese_scores = [x[1] for x in students[1:]] math_scores = [x[2] for x in students[1:]] english_scores = [x[3] for x in students[1:]] chinese_avg, chinese_std_dev, chinese_median = calculate_statistics(chinese_scores) math_avg, math_std_dev, math_median = calculate_statistics(math_scores) english_avg, english_std_dev, english_median = calculate_statistics(english_scores) print("语文平均分:", chinese_avg, "语文标准差:", chinese_std_dev, "语文中位数:", chinese_median) print("数学平均分:", math_avg, "数学标准差:", math_std_dev, "数学中位数:", math_median) print("英语平均分:", english_avg, "英语标准差:", english_std_dev, "英语中位数:", english_median) ``` 运行上述代码,输入学生数量n,即可得到各科成绩的平均分、标准差和中位数。 [2024-05-08 11:20:09 | AI写代码神器 | 715点数解答]

相关提问