1. 一维数组
# 一维数组,数组元素用中括号括起来。
Score = [87, 66, 90, 65, 70]
Total_Score = 0
for count in range(5):
print('第 %d 位学生的分数:%d' %(count+1, Score[count]))
Total_Score += Score[count]
print('--------------------------------')
print('5位学生的总分:%d' %(Total_Score))
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Users/Amber/Desktop/CH02_01.py
第 1 位学生的分数:87
第 2 位学生的分数:66
第 3 位学生的分数:90
第 4 位学生的分数:65
第 5 位学生的分数:70
--------------------------------
5位学生的总分:378
2 二维数组
#计算二姐行列式
N=2
# 声明2x2的数组arr,并将所有元素设置为None
arr = [[None] * N for row in range(N)]
print('|a1 b1|')
print('|a2 b2|')
arr[0][0] = input('请输入a1:')
arr[0][1] = input('请输入b1:')
arr[1][0] = input('请输入a2:')
arr[1][1] = input('请输入b2:')
# 求二阶行列式的值
result = int(arr[0][0]) * int(arr[1][1]) - int(arr[0][1]) * int(arr[1][0])
print('|%d %d|' %(int(arr[0][0]),int(arr[0][1])))
print('|%d %d|' %(int(arr[1][0]),int(arr[1][1])))
print('行列式的值=%d'%result)
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Users/Amber/Desktop/CH02_02.py
|a1 b1|
|a2 b2|
请输入a1:5
请输入b1:9
请输入a2:3
请输入b2:4
|5 9|
|3 4|
行列式的值=-7
3. 三维数组
# 声明三维数组
num = [[[33, 45, 67], [23, 71, 66],[55, 38, 66] ], \
[[21, 9, 15], [38, 69, 18],[90, 101, 89]]]
value = num[0][0][0] #设置value为第一个元素
for i in range(2):
for j in range(3):
for k in range(3):
if (value >= num[i][j][k]):
value = num[i][j][k] #利用三重循环找出最小值
print("最小值= %d" %value)
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Users/Amber/Desktop/CH02_03.py
最小值= 9
4. 矩阵加法
A = [[1, 3, 5], [7, 9, 11], [13, 15, 17]] #二维数组的声明
B = [[9, 8, 7], [6, 5, 4], [3, 2, 1]] #二维数组的声明
N = 3
C = [[None] * N for row in range(N)]
for i in range(3):
for j in range(3):
C[i][j] = A[i][j] + B[i][j] # 矩阵C = 矩阵A+矩阵B
print('[矩阵A和矩阵B相加的结果]') #打印A+B的内容
for i in range(3):
for j in range(3):
print('%d' %C[i][j], end ='\t')
print()
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Users/Amber/Desktop/CH02_04.py
[矩阵A和矩阵B相加的结果]
10 11 12
13 14 15
16 17 18
5. 矩阵乘法
# 两个矩阵相乘
#global C
def MatrixMultiply(arrA, arrB, arrC, M, N, P):
global C
if M <= 0 or N <= 0 or P <= 0:
print('[错误:维数M,N,P必须大于0]')
return
for i in range(M):
for j in range(P):
Temp = 0
for k in range(N):
Temp = Temp + int(arrA[i*N+k]) * int(arrB[k*P+j])
arrC[i*P+j] = Temp
print('请输入矩阵A的维度(M,N):')
M = int(input('M= '))
N = int(input('N= '))
A = [None]*M*N #声明大小为MxN的列表A
print('【请输入矩阵A的各个元素】')
for i in range(M):
for j in range(N):
A[i*N+j] = input('a%d%d='%(i,j))
print('请输入矩阵B的维度(N,P):')
N = int(input('N= '))
P = int(input('P= '))
B = [None]*N*P #声明大小为NxP的列表B
print('【请输入矩阵B的各个元素】')
for i in range(N):
for j in range(P):
B[i*P+j] = input('b%d%d='%(i,j))
C = [None]*M*P #声明大小为MxP的列表C
MatrixMultiply(A,B,C,M,N,P)
print('[A*B的结果是]')
for i in range(M):
for j in range(P):
print('%d'%C[i*P+j],end='\t')
print()
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Users/Amber/Desktop/CH02_5.py
请输入矩阵A的维度(M,N):
M= 2
N= 3
【请输入矩阵A的各个元素】
a00=5
a01=6
a02=3
a10=8
a11=4
a12=8
请输入矩阵B的维度(N,P):
N= 3
P= 2
【请输入矩阵B的各个元素】
b00=4
b01=6
b10=5
b11=2
b20=8
b21=6
[A*B的结果是]
74 60
116 104
6. 矩阵转置
# 矩阵转置
arrA = [[1,2,3,4], [5,6,7,8],[9,10,11,12],[13,14,15,16]]
N = 4
# 声明4x4数据arr
arrB = [[None]*N for row in range(N)]
print('[原矩阵内容]')
for i in range(4):
for j in range(4):
print('%d'%arrA[i][j],end = '\t')
print()
#进行矩阵转置的操作
for i in range(4):
for j in range(4):
arrB[i][j]=arrA[j][i]
print('[转置后的矩阵内容]')
for i in range(4):
for j in range(4):
print('%d'%arrB[i][j],end='\t')
print()
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Users/Amber/Desktop/test.py
[原矩阵内容]
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
[转置后的矩阵内容]
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
7. 稀疏矩阵
#稀疏矩阵
NONZERO=0
temp = 1
Sparse = [[15,0,0,22,0,-15],[0,11,3,0,0,0],[0,0,0,-6,0,0],[0,0,0,0,0,0],[91,0,0,0,0,0],[0,0,28,0,0,0]] #声明稀疏矩阵,矩阵所有元素设为0
Compress=[[None]*3 for row in range(9)] #声明压缩矩阵
print('稀疏矩阵的各个元素') #打印出稀疏矩阵的各个元素
for i in range(6):
for j in range(6):
print('[%d]'%Sparse[i][j], end='\t')
if Sparse[i][j] != 0:
NONZERO = NONZERO + 1
print()
# Start to compress Sparse matrix
Compress[0][0] = 6
Compress[0][1] = 6
Compress[0][2] = NONZERO
for i in range(6):
for j in range(6):
if Sparse[i][j] !=0 :
Compress[temp][0]=i
Compress[temp][1]=j
Compress[temp][2]=Sparse[i][j]
temp=temp+1
print('Sparse matrix after Compression')
for i in range(NONZERO + 1):
for j in range(3):
print('[%d]'%Compress[i][j], end=' ')
print()
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Python/Exercises/CH02_07.py
稀疏矩阵的各个元素
[15] [0] [0] [22] [0] [-15]
[0] [11] [3] [0] [0] [0]
[0] [0] [0] [-6] [0] [0]
[0] [0] [0] [0] [0] [0]
[91] [0] [0] [0] [0] [0]
[0] [0] [28] [0] [0] [0]
Sparse matrix after Compression
[6] [6] [8]
[0] [0] [15]
[0] [3] [22]
[0] [5] [-15]
[1] [1] [11]
[1] [2] [3]
[2] [3] [-6]
[4] [0] [91]
[5] [2] [28]
8. 上三角矩阵
# upper angular matrix
global ARRAY_SIZE # Array dimensions
ARRAY_SIZE = 5
# one dimension array declaration
num = int(ARRAY_SIZE * (1+ARRAY_SIZE)/2)
B = [None]*(num+1)
def getValue(i,j):
index = int(ARRAY_SIZE*i - i*(i+1)/2 + j)
return B[index]
#Upper triangular matrix content
A=[[7,8,12,21,9],
[0,5,14,17,6],
[0,0,7,23,24],
[0,0,0,32,19],
[0,0,0,0,8]]
print('===================================================')
print('Upper Triangular Matrix:')
for i in range(ARRAY_SIZE):
for j in range(ARRAY_SIZE):
print('%d'%A[i][j],end='\t')
print()
#Compress Upper Triangular Matrix to One-Dimension Matrix
index = 0
for i in range(ARRAY_SIZE):
for j in range(ARRAY_SIZE):
if (A[i][j] != 0):
index = index+1
B[index]=A[i][j]
print('===================================================')
print('Show as one-dimension array')
print('[',end='')
for i in range(ARRAY_SIZE):
for j in range(i+1,ARRAY_SIZE+1):
print('%d'%getValue(i,j),end='\t')
print(']')
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 181.2784.25\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 57270 --file C:/Python/Exercises/CH02_08.py
pydev debugger: process 2880 is connecting
Connected to pydev debugger (build 181.2784.25)
===================================================
Upper Triangular Matrix:
7 8 12 21 9
0 5 14 17 6
0 0 7 23 24
0 0 0 32 19
0 0 0 0 8
===================================================
Show as one-dimension array
[7 8 12 21 9 5 14 17 6 7 23 24 32 19 8 ]
9. 下三角矩阵
#Lower triangular matrix
global ARRAY_SIZE # Array dimensions
ARRAY_SIZE = 5
# one dimension array declaration
num = int(ARRAY_SIZE * (1+ARRAY_SIZE)/2)
B = [None]*(num+1)
def getValue(i,j):
index = int(ARRAY_SIZE*i - i*(i+1)/2 + j)
return B[index]
#Upper triangular matrix content
A=[[76,0,0,0,0],
[54,51,0,0,0],
[23,8,26,0,0],
[43,35,28,18,0],
[12,9,14,35,46]]
print('===================================================')
print('Lower Triangular Matrix:')
for i in range(ARRAY_SIZE):
for j in range(ARRAY_SIZE):
print('%d'%A[i][j],end='\t')
print()
#Compress Lower Triangular Matrix to One-Dimension Matrix
index = 0
for i in range(ARRAY_SIZE):
for j in range(ARRAY_SIZE):
if (A[i][j] != 0):
index = index+1
B[index]=A[i][j]
print('===================================================')
print('Show as one-dimension array')
print('[',end='')
for i in range(ARRAY_SIZE):
for j in range(i+1,ARRAY_SIZE+1):
print('%d'%getValue(i,j),end='\t')
print(']')
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Python/Exercises/CH02_09.py
===================================================
Lower Triangular Matrix:
76 0 0 0 0
54 51 0 0 0
23 8 26 0 0
43 35 28 18 0
12 9 14 35 46
===================================================
Show as one-dimension array
[76 54 51 23 8 26 43 35 28 18 12 9 14 35 46 ]
10. 多项式
# 将两个最高次方相等的多项式相加后输出结果 ITEMS=6 def PrintPoly(Poly,items): MaxExp=Poly[0] for i in range(1,Poly[0]+2): MaxExp=MaxExp-1 if Poly[i]!=0: print(' %dX^%d '%(Poly[i],MaxExp+1),end='') else: print (' %d'%Poly[i],end='') if MaxExp >= 0: print('%c'%'+',end='') print() def PolySum(Poly1,Poly2): result=[None]*ITEMS result[0]=Poly1[0] for i in range(1,Poly1[0]+2): result[i]=Poly1[i]+Poly2[i] PrintPoly(result,ITEMS) PolyA=[4,3,7,0,6,2] PolyB=[4,1,5,2,0,9] print('多项式A=> ',end='') PrintPoly(PolyA,ITEMS) print('多项式B=> ',end='') PrintPoly(PolyB,ITEMS) print('多项式A+B=> ',end='') PolySum(PolyA,PolyB)
C:\Users\Amber\AppData\Local\Programs\Python\Python36\python.exe C:/Python/Exercises/CH02_10.py
多项式A=> 3X^4 + 7X^3 + 0+ 6X^1 + 2X^0
多项式B=> 1X^4 + 5X^3 + 2X^2 + 0+ 9X^0
多项式A+B=> 4X^4 + 12X^3 + 2X^2 + 6X^1 + 11X^0