1

所以我有我正在研究的这个程序。这是到目前为止的代码:

A = [[2,4], [7,0], [6,3]]
B = [[3,1], [-1,8], [-3, 3]]

def Print(A):
    for i in range(len(A)):
        line = "\t|"+str(A[i][0])
        for j in range(1, len(A[i])):
            line = line + "\t" + str(A[i][j])
        line = line + "|"
        print(line)

def matrix_add(A,B):
    Z = []
    for i in range(len(A)):
        row = []
        for j in range(len(A[0])):
            row.append(A[i][j]+B[i][j])
        Z.append(row)
    return Z

print("A + B:")
Print(matrix_add(A,B))

我得到的打印声明是这样的:

A + B:
        |5    5|
        |6    8|
        |3    6|

但我需要的打印语句是:

A + B:
     |5      5|
     |6      8|
     |3      6|

看看矩阵如何更接近 A+B:我将如何修复我的程序来做到这一点?我想不通。

我尝试在其中添加空格,line = "\t|"+str(A[i][0])因此它更改为,line = " |"+str(A[i][0])但这只是将打印语句更改为:

A + B:
    |5   5|
    |6   8|
    |3   6|

我需要它看起来完全一样。

4

2 回答 2

1

在这里的第一行:

行 = "\t|"+str(A[i][0])

您需要将制表符 (\t) 更改为不会将其移到远处的内容。也许几个空格?

于 2013-03-27T20:21:02.310 回答
0

您可以使用 Python 提供的许多字符串格式化选项。

http://docs.python.org/2/library/string.html#format-specification-mini-language

def Print(A):
    for i in range(len(A)):
        line = "{0: >6}".format("|"+str(A[i][0]))
        for j in range(1, len(A[i])):
            line = line + "{0: >4}".format(str(A[i][j]))
        line = line + "|"
        print(line)

如果输入更大的数字,例如10,缩进会减一。您可以确定要格式化的字符串的长度,并使用该长度使其更加通用。

于 2013-03-27T20:38:40.183 回答