1 #题目:求一个3*3矩阵对角线元素之和.


代码:


  2 
  3 li = []
  4 for i in range(1,4):
  5     for j in range(1,4):
  6         li.append(int(input('请输入第%d行第%d个数:'%(i,j))))
  7 print(li)
  8 sum = 0
  9 for i in range(10):
 10     if i%2 == 0:
 11         sum += li[i]
 12 print ('对角线之和为%d'%sum)


运行结果:


[root@HK code_100]# python code_38.py 
请输入第1行第1个数:5
请输入第1行第2个数:7
请输入第1行第3个数:9
请输入第2行第1个数:4
请输入第2行第2个数:3
请输入第2行第3个数:6
请输入第3行第1个数:9
请输入第3行第2个数:55
请输入第3行第3个数:42
[5, 7, 9, 4, 3, 6, 9, 55, 42]
对角线之和为68
[root@HK code_100]#


代码解释:


   #思路:将这个3*3矩阵按照行添加到一个list中,那么对角线之和就是这个list中下标为偶数的元素的和
   2 
  3 li = []                                                #创建一个空列表,用来存数输入的3*3矩阵
  4 for i in range(1,4):                                   #遍历矩阵的三行
  5     for j in range(1,4):                               #遍历矩阵每行的三个元素
  6         li.append(int(input('请输入第%d行第%d个数:'%(i,j))))    #将这个矩阵按顺序接收到list中
  7 print(li)                                              #打印矩阵list,供参考
  8 sum = 0                                                #定义对角线和为sum,赋值为0
  9 for i in range(10):                                    #遍历列表list的下标
 10     if i%2 == 0:                                       #取出可以被2整除的下标的元素
 11         sum += li[i]                                   #取出的元素累加
 12 print ('对角线之和为%d'%sum)                           #打印这个3*3的矩阵对角线之和