python如何使矩阵上下行元素的个位对齐

图片说明
输入 1 个正整数 n(1≤n),再按行读入 n 阶方阵 a 和 b, 生成并输出 n 阶方阵 c,c 中的元素是 a 和 b 对应元素的和. c[i][j]=a[i][j]+b[i][j] i,j=0,1,2...n-1(1<=c[i]<=99)
输入格式:
在第一行输入n 在第二行输入a方阵 在第一行输入b方阵

输出格式:
输出c方阵
输入样例:
在这里给出一组输入。例如:

3
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
输出样例:
在这里给出相应的输出。例如:

3 5 7
9 11 13
15 17 10

以下是我的代码:
(格式错误)
n=int(input())
a=input()
b=input()
a=a.split()
b=b.split()
for i in range(n):
for j in range(n):
sum=int(a[3*i+j])+int(b[3*i+j])
if 10<=sum<=99:
print(sum,end=' ')
elif 0<=sum<=9:
print(sum,end=' ')
print()

可以使用类似c语言的对齐方式,c里的%d表示输出整数,%2d表示输出两位宽的整数。楼主可以了解一下相关语法,不过这里写成这样就可以。

n=int(input())
a=input().split()
b=input().split()

for i in range(n):
    for j in range(n):
        print("%2d " % int(a[3*i+j])+int(b[3*i+j]), end='')
    print("")

也可以尝试这样写,将a数组转化为整数的步骤放到前面,让后面的代码不那么复杂。

if __name__ == "__main__":
    n = int(input())
    a = [int(t) for t in input().split()]
    b = [int(t) for t in input().split()]

    for i in range(n):
        for j in range(n):
            print("%2d " % (a[3*i+j] + b[3*i+j]), end='')
        print("")
#!/usr/bin/python
n=int("3")
a="1 2 3 4 5 6 7 8 9"
b="2 3 4 5 6 7 8 9 1"
a=a.split()
b=b.split()
for i in range(n):
    for j in range(n):
        sum=int(a[3*i+j])+int(b[3*i+j])
        if 10<=sum<=99:
            print("_" + str(sum),end=' ')
        elif 0<=sum<=9:
            print("__" + str(sum),end=' ')
    print()

输出

__3 __5 __7 
__9 _11 _13 
_15 _17 _10 

为了让你看清楚,我用了下划线,实际你替换成空格