import math
error=True
while error:
n=int(input('请输入矩阵行数n: '))
str1=input('请输入nn个数字 用空格隔开 :')
x=[int(i) for i in str1.split(' ')]
# 以空格为间隔 读取所输入的数字
y=math.floor(math.sqrt(len(x)))
# 将所读取的数字个数进行开方 并返回开放后的下舍整数 目的是为了检测所输入的数字个数是否与输入的n2相等
if y==n and y != 1:
error=False
# 当所输入的数字个数与n**n相等 跳出循环 否则提示用户输入数字个数有误
else:
print('您输入的数字个数有错误 无法构成nn矩阵')
xx=[]
for i in range(y):
xy=[]
for j in range(y):
xy.append(x[iy+j])
xx.append(xy)
# 将每行数字储存进xx列表
sum=0
for i in range(y):
if i = y-1-i:
# 两个分别代表从\和/方向开始
sum+=xx[i][i]
# 这里使用if是为了防止重复计算 例如3**3矩阵中计算两个对角线和时xx[1][1]是计算了两次的 所以当两个值相等时只相加一次就可以
else:
sum+=xx[i][i]+xx[y-1-i][i]
print(sum)
这个代码是求矩阵对角线的和 在上面if i=y-1-i 是为了判断两对角线重合数字重复相加 但是他老是提示格式错误 这样写有错吗? 望大佬讲解