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

ここの最初の行で:

line = "\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と、インデントが 1 つずれます。書式設定する文字列の長さを決定し、その長さを使用してより用途の広いものにすることができます。

于 2013-03-27T20:38:40.183 に答える