Python方阵求和代码测试未通过,请求排查故障原因
方阵加法程序调试问题
任务需求
编写程序实现两个方阵的加法运算:
- 先读取矩阵维度N
- 逐行读取第一个方阵的N*N个数值
- 再读取第二个方阵的N*N个数值
- 最终将结果矩阵按每行一行的格式输出
现有代码
from operator import add #Enter a digit for you matrix, e.g if you want it to be 2x2 enter 2 n = int(input()) #Input digits for both matrixes rows one at a time matrix1_r1 = [int(input()) for x in range(n)] matrix1_r2 = [int(input()) for x in range(n)] matrix2_r1 = [int(input()) for x in range(n)] matrix2_r2 = [int(input()) for x in range(n)] final1 = list(map(add, matrix1_r1, matrix2_r1)) final2 = list(map(add, matrix1_r2, matrix2_r2)) print(final1) print(final2)
平台示例输入
2 1 2 3 4 5 6 7 8
平台示例输出
[6, 8] [10, 12]
问题原因
你的代码仅硬编码支持2×2维度的方阵,无法处理N为其他值的测试用例,这就是导致其中一个测试用例失败的核心原因,并非平台问题。本地测试只覆盖了2x2场景,所以看起来正常,但平台必然存在N≠2的测试用例。
改进后的通用代码
基础循环写法:
n = int(input()) # 读取第一个N×N矩阵 matrix1 = [] for _ in range(n): row = [int(input()) for _ in range(n)] matrix1.append(row) # 读取第二个N×N矩阵 matrix2 = [] for _ in range(n): row = [int(input()) for _ in range(n)] matrix2.append(row) # 计算矩阵加法并输出结果 for i in range(n): result_row = [matrix1[i][j] + matrix2[i][j] for j in range(n)] print(result_row)
简洁列表推导式写法:
n = int(input()) matrix1 = [[int(input()) for _ in range(n)] for _ in range(n)] matrix2 = [[int(input()) for _ in range(n)] for _ in range(n)] for r1, r2 in zip(matrix1, matrix2): print([a + b for a, b in zip(r1, r2)])
内容的提问来源于stack exchange,提问作者ChioStar
相关产品推荐
相关产品推荐

