haoge404407 发表于 2020-5-24 10:15:07

python解矩阵

【问题描述】
对于一个n阶矩阵,分别按行、按列、按两对角线计算元素之和。
【输入形式】
先输入矩阵的阶数n(不超过50),然后输入一个n阶矩阵。
【输出形式】
第一行输出按行计算出的元素之和,以一个空格分隔;
第二行输出按列计算出的元素之和,以一个空格分隔;
第三行、第四行分别输出左、右对角线计算出的元素之和。
【输入样例】
3
1 2 3
4 5 6
7 8 9
【输出样例】
6 15 24                     (行之和)
12 15 18                   (列之和)
15                        (左对角线和)
15                        (右对角线和)
【样例说明】
输入一个3阶矩阵,分别计算输出它的行,列和对角线的和。

输出样例中,每行最后的括号和文字是说明用的,不属于程序输出。

liuzhengyuan 发表于 2020-5-24 10:28:28

计算行就用for 遍历,然后 sum() 函数直接上
计算列还是for 遍历,但是只不过要复杂一点,
计算列的程序已经帮你写好了
lst = [
      ,
      ,
      
    ]


for i in range(len(lst)):
    lstsum = []
    for j in range(len(lst)):
      lstsum.append(lst) # 对每列进行计算
    print(sum(lstsum), end=" ")
左对角线的话,还是 for 来遍历,i, j 每次加一
右对角线 i, j 为最大值,每次减一

Twilight6 发表于 2020-5-24 11:10:11


ask = int(input())
array = []
while ask > 0:
    matrix = input()
    ask -= 1
    matrix = matrix.strip()
    array.append()
for i in array:
    print(sum(i),end=' ')
print('')
for i in range(len(array)):
    print(sum( for x in array]),end=' ')
print('')
ls = [] ;i = 0
for x in array:
    ls.append(x)
    i += 1
print(sum(ls))
ls = [] ;i = -1
for x in array:
    ls.append(x)
    i -= 1
print(sum(ls))

zwhe 发表于 2020-5-28 10:25:44

{:9_227:}
页: [1]
查看完整版本: python解矩阵