Python程序:生成学生成绩数据并统计分析,以及矩阵乘法计算
Python 程序:生成学生成绩数据并统计分析,以及矩阵乘法计算
(1) 生成学生成绩数据并统计分析
该程序生成 100 个学生的随机成绩数据,每个学生有 6 门课程的成绩,姓名和成绩都是随机产生的。程序统计每个学生的平均成绩,以及每门课的平均成绩、最高成绩和最低成绩。
代码如下:
import random
# 生成随机字符串
def rand_str(length=10):
chars = 'abcdefghijklmnopqrstuvwxyz'
return ''.join(random.choice(chars) for _ in range(length))
# 生成100个学生的成绩数据
students = []
for i in range(100):
name = rand_str()
scores = [random.randint(0, 100) for _ in range(6)]
student = {'name': name, 'scores': scores}
students.append(student)
# 统计每个学生的平均成绩
for student in students:
avg_score = sum(student['scores']) / len(student['scores'])
student['avg_score'] = avg_score
# 统计每门课的平均成绩、最高成绩、最低成绩
course_scores = [[] for _ in range(6)] # 保存每门课的成绩
for student in students:
for i, score in enumerate(student['scores']):
course_scores[i].append(score)
for i, scores in enumerate(course_scores):
avg_score = sum(scores) / len(scores)
max_score = max(scores)
min_score = min(scores)
print('第{}门课的平均成绩:{}, 最高成绩:{}, 最低成绩:{}'.format(i+1, avg_score, max_score, min_score))
# 打印每个学生的成绩数据
for student in students:
print(student)
(2) 计算两个矩阵的乘法
该程序计算两个矩阵的乘法,用户输入矩阵大小和元素,程序判断矩阵是否可以相乘并输出乘积结果。
代码如下:
# 获取用户输入的矩阵大小和元素
def get_matrix():
m, n = map(int, input('请输入矩阵大小(m,n):').split(','))
matrix = []
for i in range(m):
row = list(map(int, input('请输入第{}行元素:'.format(i+1)).split(',')))
if len(row) != n:
print('输入错误!')
return None
matrix.append(row)
return matrix
# 计算两个矩阵的乘积
def matrix_multiply(matrix1, matrix2):
m1, n1 = len(matrix1), len(matrix1[0])
m2, n2 = len(matrix2), len(matrix2[0])
if n1 != m2:
print('矩阵无法相乘!')
return None
result = [[0]*n2 for _ 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]
return result
# 主程序
matrix1 = get_matrix()
matrix2 = get_matrix()
if matrix1 and matrix2:
result = matrix_multiply(matrix1, matrix2)
if result:
print('矩阵乘积为:')
for row in result:
print(row)
总结
本文介绍了用 Python 编写的两个程序,分别实现了生成随机学生成绩数据并统计分析,以及计算两个矩阵的乘法。这两个程序都提供了详细的代码注释,方便读者理解程序逻辑和功能。希望本文能够帮助读者学习 Python 的编程技巧,并对相关知识有更深入的理解。
原文地址: https://www.cveoy.top/t/topic/nyqp 著作权归作者所有。请勿转载和采集!