Python 练习实例38
题目:求一个3*3矩阵主对角线元素之和。
程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
程序源代码:
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
a = []
sum = 0.0
for i in range(3):
a.append([])
for j in range(3):
a[i].append(float(input("input num:\n")))
for i in range(3):
sum += a[i][i]
print (sum)
以上实例输出结果为:
input num: 78 input num: 34 input num: 23 input num: 34 input num: 56 input num: 33 input num: 12 input num: 21 input num: 2 136.0
Python 100例
不知道叫啥
114***5830@qq.com
参考方法:
# coding: utf-8 """ 1 2 3 4 5 6 7 8 9 """ matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] sum_ = 0 for i in range(0, 3): sum_ += matrix[i][i] print sum_不知道叫啥
114***5830@qq.com
红萝卜
101***0300@qq.com
参考方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- import numpy as np a=np.random.randint(1,100,9).reshape(3,3) print(a) (m,n)=np.shape(a) sum=0 for i in range(m): for j in range(n): if i==j: sum+=a[i,j] print(sum)红萝卜
101***0300@qq.com
chengxuyuan
hdw***taoyuan@foxmail.com
可以输入任意阶方阵,并优化输入效果,输入时支持回车。
# encoding:utf-8 import re stopword = '' str = '' num = [] result = 0 print '请输入一个n阶方阵:数字之间用空格隔开,回车输入下一行元素,双回车表示结束\n' \ '例如: 11 12 13\n' \ ' 21 22 23\n' \ ' 31 32 33\n' for line in iter(raw_input, stopword):#输入方阵,将回车作为字符输入 str = str + line + '\n' row = len(re.findall(r'\n', str)) for x in re.finditer(r'\d+', str):#将字符串的数字取出并存入到num数列 num.append(int(x.group())) i = 0 for j in range(row):#将主对角线元素进行相加 result += num[i] i = i + row + 1 print '主对角线元素和为:',resultchengxuyuan
hdw***taoyuan@foxmail.com
haruka_11
yel***n@sina.com
Python2.x 与 Python3.x 兼容:
A = {} for i in range(3): for j in range(3): A[i,j] = int(input('Enter a number:')) diag = [] for m in A.keys(): if m[0] == m[1]: diag.append(A[m]) print(sum(diag))haruka_11
yel***n@sina.com