weixin_43828355 2019-10-03 15:44 采纳率: 0%
浏览 1806

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()

  • 写回答

2条回答 默认 最新

  • JonathanYan 2019-10-03 16:39
    关注

    可以使用类似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("")
    
    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流