虽然这样的作业很无聊,但改写的还得写。
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,求该矩阵的逆