Error = '输入错误,请重新输入!'
while True:
try:
n = int(input('请输入一个正整数n(1≤n≤5):'))
except:
print(Error)
continue
if 1<=n<=5:
break
else:
print(Error)
Error = '输入错误,请重新输入!'
while True:
try:
n = int(input('请输入一个正整数n(0退出):'))
except:
print(Error)
continue
if 1<=n<=9:
for i in range(1,n+1):
print(f'{(str(i)*(i*2-1)):^{n*2-1}}')
elif n==0:
exit(0)
else:
print(Error)
''' 输出结果:
实例:输出数字的等腰三角形
n=7
1
222
33333
4444444
555555555
66666666666
7777777777777
'''
>>> 10_000_000 == 10000000
True
>>> 1234_5678_9000 == 123456789000
True
def fib(n, t = False):
# n:int, n>0; fib->int or list
if n<3: return [1]*n if t else (n+1)//2
n1 = n2 = 1
if t: res = [1,1]
for i in range(2,n):
n3 = n1 + n2
n1,n2 = n2,n3
if t: res.append(n3)
if t: return res
return n3
for i in range(1,11):
print(i,':',fib(i))
print(fib(i,True))
''' 输出结果:
1 : 1
[1]
2 : 1
[1, 1]
3 : 2
[1, 1, 2]
4 : 3
[1, 1, 2, 3]
5 : 5
[1, 1, 2, 3, 5]
6 : 8
[1, 1, 2, 3, 5, 8]
7 : 13
[1, 1, 2, 3, 5, 8, 13]
8 : 21
[1, 1, 2, 3, 5, 8, 13, 21]
9 : 34
[1, 1, 2, 3, 5, 8, 13, 21, 34]
10 : 55
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
'''
def matrixMultiple(A, B):
res = [[0]*len(B[0]) for _ in range(len(A))]
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(A[0])):
res[i][j] += A[i][k] * B[k][j]
return res
'''输出效果:
matrixA = [[1,2],[3,4]]
matrixB = [[5,6],[7,8]]
print(matrixMultiple(matrixA, matrixB))
matrixA = [[1,2,3],[3,2,2],[2,1,2]]
matrixB = [[2,2],[3,1],[2,1]]
print(matrixMultiple(matrixA, matrixB))
matrixA = [[1,2,3],[4,5,6]]
matrixB = [[7,8,9,0],[-1,-2,-3,-4],[5,6,7,8]]
print(matrixMultiple(matrixA, matrixB))
[[19, 22], [43, 50]]
[[14, 7], [16, 10], [11, 7]]
[[20, 22, 24, 16], [53, 58, 63, 28]]
'''
print(*filter(lambda n:0 if n<2 else not any(map(lambda i:not n%i,range(2,n))), range(100)))
输出结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
7.随机数列排序,要求正数降序负数升序,且正数在前负数在后。
import random
n = 10
random.seed(n)
lst = [random.randint(-100,100) for _ in range(10)]
print(lst)
# lst = random.choices(range(-100,101), k=10) # 也可但相同种子也与randint()输出随机数不同
lst = sorted(lst, key=lambda x:x if x>=0 else 1/x, reverse=True) # 把负数取倒数实现反序
print(lst)
# 或者升序,但x 1/x取负值一样也降序
random.seed(n)
lst = [random.randint(-100,100) for _ in range(10)]
lst = sorted(lst, key=lambda x:-x if x>=0 else -1/x)
print(lst)
# 或分两段分别排序
random.seed(10)
lst = [random.randint(-100,100) for _ in range(10)]
lst = list(sorted(filter(lambda x:x>=0,lst),reverse=True))+list(sorted(filter(lambda x:x<0,lst)))
print(lst)
输出结果:
[46, -92, 9, 23, 47, -97, -48, 18, 25, -29]
[47, 46, 25, 23, 18, 9, -97, -92, -48, -29]
[47, 46, 25, 23, 18, 9, -97, -92, -48, -29]
[47, 46, 25, 23, 18, 9, -97, -92, -48, -29]
设A为mp的矩阵,B为pn的矩阵,那么称m*n的矩阵C为矩阵A与B的乘积,记作 C = AB,其中矩阵C中的第i行第j列元素可以表示为:
1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。
2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
乘法结合律: (AB)C=A(BC).
乘法左分配律:(A+B)C=AC+BC
乘法右分配律:C(A+B)=CA+CB
对数乘的结合性:k(AB)=(kA)B=A(kB).
转置 (AB).T=B.T * A.T 【.T表示矩阵转置】
矩阵乘法除以下两种情况外不满足交换律:
AA*=A*A,A和伴随矩阵相乘满足交换律。
AE=EA,A和单位矩阵或数量矩阵满足交换律。
矩阵乘法也不满足消去律,即:
AB = AC 时,不一定能推出: B = C
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://hannyang.blog.csdn.net/article/details/124935045
内容来源于网络,如有侵权,请联系作者删除!