Skip to main content
 首页 » 编程设计

python之我的 Python 代码出了什么问题

2025年05月04日25shihaiming

我是编程新手,尤其是 Python。在这里,我尝试编写一个代码,从用户那里接收一个矩阵(写成列表的列表)并将这个字符串变成一个“真正的”列表:

def string_to_matrix(arg): 
    result = [] 
    lines = arg.count("[") - 1 
    for i in range(lines): 
        result.append([]) 
    count = 0 
    i = 2 
    while i <= len(arg): 
        if arg[i] == "[": 
            count += 1 
            i += 1 
        elif arg[i].isdigit(): 
            new_number = 0 
            while arg[i].isdigit(): 
                new_number = 10*new_number + int(arg[i]) 
                i += 1 
            result[count].append(new_number) 
    return result 
 
 
m_1 = string_to_matrix(raw_input("Type your first matrix in format [[x, y, ...],[z, ...],[...], ...]: ")) 
print m_1 

但是在我输入一个矩阵(例如 [[1]] 或 [[1, 2], [3, 4]])之后,代码将永远循环并且永远不会打印任何内容。我做错了什么?

请您参考如下方法:

您的问题不清楚,所以只能检查下面的代码并查看它是否打印正确的输出。

def string_to_matrix(arg): 
    result = [] 
    lines = arg.count("[") - 1 
    for i in range(lines): 
        result.append([]) 
    count = 0 
    i = 2 
    while i < len(arg): 
        if arg[i] == "[": 
            count += 1 
            i=i+1 
        elif arg[i].isdigit(): 
            new_number = 0 
            while arg[i].isdigit(): 
                new_number = 10*new_number + int(arg[i]) 
                i=i+1 
            result[count].append(new_number) 
        else: 
            i=i+1 
    return result