【Python练习题 028】 求一个3*3矩阵对角线元素之和

-----------------------------------------------------

这题解倒是解出来了,但总觉得代码太啰嗦。矩阵这东西,应该有个很现成的方法可以直接计算才对…… 啰嗦代码如下:

str = input(‘请输入9个数字,用空格隔开,以形成3*3矩阵:‘)

n = [int(i) for i in str.split(‘ ‘)] #获取9个数字

mx = [] #存储矩阵

for i in range(3):

mt = [] #收集矩阵中每行的数字列表

for j in range(3):

mt.append(n[i*3 + j])

mx.append(mt) #每行数字存储进mx列表

print(mt)

sum1 = 0

sum2 = 0

for i in range(3):

sum1 += mx[i][i]

sum2 += mx[2-i][i]

print(‘\方向对角线3元素之和为:%s‘ % sum1)

print(‘/方向对角线3元素之和为:%s‘ % sum2)

输出结果如下:

请输入9个数字,用空格隔开,以形成3*3矩阵:7 9 6 5 4 8 6 7 3

[7, 9, 6]

[5, 4, 8]

[6, 7, 3]

\方向对角线3元素之和为:14

/方向对角线3元素之和为:16

只要将代码稍微改一下,就可以接受任意 n*n 矩阵的计算了,而且数字数目输入有误时,也可以提示重新输入。改后代码如下:

import math

err = True

while err:

str = input(‘请输入n**2个数字,用空格隔开,以形成n*n的矩阵:‘)

n = [int(i) for i in str.split(‘ ‘)] #获取9个数字

t = math.floor(math.sqrt(len(n)))

if t == math.sqrt(len(n)) and t != 1:

err = False

else:

print(‘您输入的数字个数有误,请重试。‘)

mx = [] #存储矩阵

for i in range(t):

mt = [] #收集矩阵中每行的数字列表

for j in range(t):

mt.append(n[i*t + j])

mx.append(mt) #每行数字存储进mx列表

print(mt)

sum1 = 0

sum2 = 0

for i in range(t):

sum1 += mx[i][i]

sum2 += mx[t-1-i][i]

print(‘\方向对角线元素之和为:%s‘ % sum1)

print(‘/方向对角线元素之和为:%s‘ % sum2)

输出结果如下:

请输入n**2个数字,用空格隔开,以形成n*n的矩阵:8 7 5 4 3 5 6 7 4 5 3 4 2 9 8 7 5 8 9 6 5 2 3 2 6

[8, 7, 5, 4, 3]

[5, 6, 7, 4, 5]

[3, 4, 2, 9, 8]

[7, 5, 8, 9, 6]

[5, 2, 3, 2, 6]

\方向对角线元素之和为:31

/方向对角线元素之和为:19

虽然凑合能用,但我仍然坚信,Python肯定已经准备好了什么函数或方法,可以轻松计算矩阵。容我有空好好搜索一番,再来更新。

++++++++++++++++++++++++++++++++++++++

原文:http://www.cnblogs.com/iderek/p/5978918.html

python编程题计算矩阵对角线_Python练习题 028:求3*3矩阵对角线数字之和相关推荐

  1. python计算矩阵对角线之和_Python练习题 028:求3*3矩阵对角线数字之和

    [Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...

  2. csharp基础练习题:排序数组矩阵由串长度【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:排序数组矩阵由串长度[难度:1级]: 编写一个函数,需要字符串作为参数数组,并返回包含相同字符串的有序排列,下令从最短到最长. 例如,如果该数组被作为参数传递: [ " ...

  3. csharp高级练习题:ASCII85编解码【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp高级练习题:ASCII85编解码[难度:3级]: ASCII85是公司的PDF和Postscript内使用的二进制到ASCII编码方案,并在基地64.你的任务是两个新的方法来扩展Strin ...

  4. 100+Python编程题给你练(附答案)

    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松 get Python 的编程技能.目前,这个项目已经获得了 3994 Stars,2952 Forks. Github 地址:Python-pr ...

  5. csharp高级练习题:Codewars风格排名系统【难度:4级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp高级练习题:Codewars风格排名系统[难度:4级]: 写一类称为用户被用来计算用户将通过一个类似于Codewars用途排名系统进展的量. 商业规则: 用户开始于秩-8,可以进步一路8. ...

  6. csharp基础练习题:noobCode 03:检查这些信件...查看是否在“字符串1”的信件出现在“字符串2”【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:noobCode 03:检查这些信件-查看是否在"字符串1"的信件出现在"字符串2"[难度:1级]: 编写一个函数,检查第二字符串中的字 ...

  7. 首先定义一个Point (点)类,包含属性x,y(x,y为坐标点),方法有setPoint、getX、getY和OprintInfo...python编程题练习

    复习python编程题集合的第五题,若有错误和改进意见,欢迎评论交流!            首先定义一个Point (点)类:                   (1)包含属性x,y(x,y为坐标 ...

  8. csharp基础练习题:计数阳性/阴性的总和【难度:0级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:计数阳性/阴性的总和[难度:0级]: 鉴于整数数组. 返回一个数组,其中第一元件是阳性数的计数和所述第二元件是负数的总和. 如果输入数组为空或无效,则返回一个空数组. 示例 对 ...

  9. csharp进阶练习题:算上笑脸!【难度:2级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp进阶练习题:算上笑脸![难度:2级]: <字体大小= "10">说明结果 给定的数组矩阵(ARR)作为参数完成的功能countSmileys应返回笑脸的总数 ...

最新文章

  1. 2019最强就业指南,看了达摩院十大科技趋势,再也不怕互联网寒冬
  2. canvas绘制圆形
  3. 前Duolingo秦龙博士归国创业:情定K12个性化学习
  4. 【书评】RHCSA/RHCE Red Hat Linux 认证学习指南(第6版)EX200 EX300
  5. 宜搭小技巧|自动计算日期时长,3个公式帮你敲定
  6. 信息学奥赛一本通 1146:判断字符串是否为回文 | OpenJudge NOI 1.7 33:判断字符串是否为回文
  7. vs mfc数据与控件绑定错了_ASP.NET Core Blazor Webassembly 之 数据绑定
  8. My blog in AI ---神经网络,神经元(neural network,nervecell)
  9. Spring和springMVC父子容器的原理
  10. 超级扫盲-什么是设计模式?
  11. 阿里云弹性云桌面解决方案、高性能GPU型云桌面用于设计、建模、影视制作
  12. python绘制树状excel表格_Python-使用XlsxWriter模块在Excel工作表中绘制柱形图
  13. Day2-开发环境搭建——百问网7天物联网智能家居
  14. 走进tensorflow第九步——WARNING(警告)也值得关注
  15. Udesk即时通讯网页插件发送咨询对象(一、使用内嵌代码)
  16. 插件用法--视频播放video.js
  17. 公排系统php,全球公排自动滑落二二复制多级分销系统 PHP源码
  18. ps入门第16天_ps液化变形_ps瘦身 案例:魔鬼瘦身大法
  19. Keil中的USE MicroLib说明
  20. 拖动鼠标实现翻页效果

热门文章

  1. Java Collections.emptyList() 方法的使用及注意事项
  2. python 赚钱 知乎_爬虫实战:抓取知乎问题 “大学生如何赚到一万元”
  3. react 组件传值
  4. 计算机英语词组,计算机专业英语词组.doc
  5. Java 集合Collection常见知识点汇总~
  6. (二叉树的动态创建与bfs)树的层次遍历
  7. C++头插法尾插法建立单链表,合并两个有序单链表
  8. mysql模糊查询 or_mysql的模糊查询
  9. mysql取消主键_mysql如何删除主键?
  10. The import org.junit.jupiter cannot be resolved 报错