Python修改矩阵转置代码实现任意维度矩阵输入无需指定行数n
矩阵转置代码修改方案
原代码存在的问题
- 固定行数
n=4,无法支持任意维度矩阵输入 - 输入判断逻辑错误:
input()返回值为字符串,直接和整数-1比较永远无法触发终止逻辑 - 缺少行长度一致性校验,仅靠索引错误捕获的容错逻辑不严谨
- 代码缩进错误,异常捕获分支没有和
try对齐,无法正常触发 - 未覆盖其他异常场景,不符合其余异常输出
Error的要求
完整修改后代码
try: lst = [] # 替换固定次数循环为无限循环,直到输入-1终止 while True: inp = input().strip() # 修正输入终止判断,匹配字符串形式的"-1" if inp == "-1": break # 分割输入并转换为整数列表 marks = inp.split() mark_list = list(map(int, marks)) lst.append(mark_list) # 空矩阵特殊处理 if not lst: exit() # 预校验所有行的元素数量是否一致 row_len = len(lst[0]) for row in lst: if len(row) != row_len: print("Invalid Matrix") exit() # 执行转置输出 for j in range(len(lst[0])): for k in range(len(lst)): print(lst[k][j], end=" ") print() # 行长度不一致触发的索引错误统一归类为无效矩阵 except IndexError: print("Invalid Matrix") # 其余所有异常统一输出Error except: print("Error")
核心修改说明
- 输入逻辑调整:用
while True循环替代固定次数的for循环,无需预先指定行数,支持任意维度矩阵输入 - 终止逻辑修正:直接判断输入字符串是否为
"-1",匹配时立刻停止接收行 - 合法性校验前置:输入完成后先遍历检查所有行的长度是否统一,不一致直接输出
Invalid Matrix,不需要等转置时报错 - 异常处理优化:索引错误统一输出无效矩阵,其余所有异常统一输出
Error,符合需求要求
内容的提问来源于stack exchange,提问作者Ushani Bandara
相关产品推荐
相关产品推荐

