PTA的Python练习题(十七)

第4章-19 矩阵运算

a=eval(input())
s=[]
count=0
for i in range(a):
    b=input()
    s.append([int(i) for i in b.split()])
for m in range(a):
    for n in range(a):
        if m!=a-1 and n!=a-1 and m+n!=a-1:
            count=count+s[m][n]
print(count)

对角线的行列合计数一定,排除对角线和最后一行、最后一列的数

b.split()是将b的单行输入元素变成列表

注:

for i in range(a):
    s.append(input().split())
s=[int(i) for i in s]

上面这种写法的话,会报错

int对象不能是list,因为单行输入多个数会变成列表里面套列表的情况,所以这里行不通,单行输入一个数的话就行得通

还有这种写法:

错误点和上面一样

解决方法就是一个接一个进行int转换

[Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你
原文地址:https://www.cnblogs.com/echoDetected/p/12364659.html