Python 实验任务:学生成绩数据生成与矩阵乘法计算

本实验任务包含两个部分:

(1) 学生成绩数据生成与统计分析

使用 Python 编写程序,生成 100 个学生的成绩数据,每个学生的数据包含姓名和 6 门课程的成绩。姓名和成绩都是随机产生的。注意姓名是一个长度为 10 的随机字符串。

任务要求:

  • 统计每一个学生的 6 门课程的平均成绩。
  • 统计每一门课的平均成绩,最高成绩,最低成绩。

示例数据:

'adfasdfaaaf' , 80, 67, 87, 54, 90, 75
'bssdfdghgd' , 90, 33, 45, 64, 34, 34

代码如下:

import random

# 生成随机姓名
def random_name():
    name = ''
    for i in range(10):
        name += chr(random.randint(97, 122))
    return name

# 生成随机成绩
def random_score():
    return random.randint(0, 100)

# 生成 100 个学生的成绩数据
students = []
for i in range(100):
    name = random_name()
    scores = [random_score() for j in range(6)]
    student = {'name': name, 'scores': scores}
    students.append(student)

# 统计每一个学生的 6 门课程的平均成绩
for student in students:
    avg_score = sum(student['scores']) / 6
    student['avg_score'] = avg_score

# 统计每一门课的平均成绩,最高成绩,最低成绩
subject_scores = [[] for i in range(6)]
for student in students:
    for i in range(6):
        subject_scores[i].append(student['scores'][i])

for i in range(6):
    subject_avg_score = sum(subject_scores[i]) / 100
    subject_max_score = max(subject_scores[i])
    subject_min_score = min(subject_scores[i])
    print('第{}门课的平均成绩为:{:.2f},最高成绩为:{},最低成绩为:{}'.format(i + 1, subject_avg_score, subject_max_score, subject_min_score))

(2) 矩阵乘法

使用 Python 编写程序,计算两个矩阵的乘法。

任务要求:

  • 用户输入第一个矩阵的大小(m, n)。
  • 用户输入 m * n 个矩阵元素。
  • 用户输入第二个矩阵的大小 (m, n)。
  • 用户输入 m * n 个矩阵元素。
  • 若两个矩阵无法相乘:输出 '无法计算'。
  • 否则计算两个矩阵的乘法并输出结果。

代码如下:

# 输入第一个矩阵的大小
m1, n1 = map(int, input('请输入第一个矩阵的大小(用空格隔开):').split())

# 输入第一个矩阵的元素
matrix1 = []
for i in range(m1):
    row = list(map(int, input('请输入第一个矩阵第{}行的元素(用空格隔开):'.format(i + 1)).split()))
    matrix1.append(row)

# 输入第二个矩阵的大小
m2, n2 = map(int, input('请输入第二个矩阵的大小(用空格隔开):').split())

# 输入第二个矩阵的元素
matrix2 = []
for i in range(m2):
    row = list(map(int, input('请输入第二个矩阵第{}行的元素(用空格隔开):'.format(i + 1)).split()))
    matrix2.append(row)

# 判断是否能相乘
if n1 != m2:
    print('无法计算!')
else:
    # 计算矩阵乘法
    result = [[0 for j in range(n2)] for i in range(m1)]
    for i in range(m1):
        for j in range(n2):
            for k in range(n1):
                result[i][j] += matrix1[i][k] * matrix2[k][j]

    # 输出结果
    for row in result:
        print(row)

完成以上两个实验任务,并提交代码。

Python 实验任务:学生成绩数据生成与矩阵乘法计算

原文地址: https://www.cveoy.top/t/topic/nzS3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录