python课-实验一
01_lambda计算圆
if __name__ == '__main__': pi = 3.14 f周长 = lambda x : 2 * pi * r f面积 = lambda x : pi * r * r r = 5 周长 = f周长(r) 面积 = f面积(r) print(f"周长:{周长:.2f},面积:{面积:.2f}")
周长:31.40,面积:78.50
02 with写入字符串
if __name__ == '__main__': with open("text.txt", 'w') as f: f.write("Hi python\n" * 1000)
文件text.txt
:
Hi python Hi python ...(省略n行)
03 yield斐波拉契数列
def f(n: int): f1, f2 = 0, 1 for i in range(n): yield f2 f1, f2 = f2, f1 + f2 if __name__ == '__main__': fb = f(123456789) for i in range(123): print(fb.__next__()) for j in range(12345678): j = j
会大概每两秒生成一个数字。
1 1 2 3 5 8 13
04 反转字符串
if __name__ == '__main__': s = 'abcdefg' # 1 反向输出 print(s[::-1]) # 2 隔两个字母反向geca print(s[::-2]) # 3 try try: s[0] = '6' except Exception as e: print('-----') # 4 截取前三个字符 print(s[:3]) # 5 截取第二个到第四个字符 print(s[1:4])
gfedcba geca ----- abc bcd
05 列表切片
l = [1,'v',3,4,5,6,7] s = l # 1 反向输出 print(s[::-1]) # 2 隔两个字母反向geca print(s[::-2]) # 3 try try: s[0] = '6' except Exception as e: print('-----') # 4 截取前三个字符 print(s[:3]) # 5 截取第二个到第四个字符 print(s[1:4])
[7, 6, 5, 4, 3, 'v', 1] [7, 5, 3, 1] ['6', 'v', 3] ['v', 3, 4]
06 numpy
import numpy as np import scipy as sp # 1 创建矩阵 x = np.array([[1,2],[3,4]]) print(x) # 2 矩阵求逆 x_n = np.linalg.inv(x) print(x_n)
[[1 2] [3 4]] [[-2. 1. ] [ 1.5 -0.5]]
附录:题目
请用lambda表达式计算圆的周长和面积,设置半径为5
创建一个text.txt文档,用with关键字打开该文档,写入1000个‘Hi, Python’字符串
请用yield关键字创建生成器,调用该生成器的__next__()方法产生斐波拉西数列
字符串处理不能用循环语句:S=’abcdefg’
A. 反向输出 gfedcba
B. 每隔2个字母反向输出 geca
C. 使用try关键字尝试改变第一个字符,如程序抛出错误,则try捕捉到该错误后,打印五个小横杠‘-----’
D. 截取前3个字符,构成字符串‘abc’
E. 截取第2个字符到第4个字符,即‘bcd’
检查第五题中的切片操作是否适用于列表数据类型,以如下列表作为实例
l=[1,’v’,3,4,5,6,7]
使用清华镜像,pip安装numpy, scipy两个包,并输入一个矩阵,第一行为1,2,第二行为3,4,求该矩阵的逆