You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:24:00