虽然这样的作业很无聊,但改写的还得写。
文章目录
- python课-实验一
- 01_lambda计算圆
- 02 with写入字符串
- 03 yield斐波拉契数列
- 04 反转字符串
- 05 列表切片
- 06 numpy
- 附录:题目
python课-实验一
01_lambda计算圆
if __name__ == '__main__':pi = 3.14f周长 = lambda x : 2 * pi * rf面积 = lambda x : pi * r * rr = 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, 1for i in range(n):yield f2f1, f2 = f2, f1 + f2if __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 隔两个字母反向gecaprint(s[::-2])# 3 trytry: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,求该矩阵的逆