一、实验目的
1. 掌握函数定义和调用的用法。
2. 掌握递归函数的执行过程。
3. 掌握位置参数、关键参数、默认值参数与长度可变参数的用法。
4. 理解函数调用时参数传递的序列解包用法。
5. 理解变量作用域。
6. 掌握lambda表达式的定义与用法。
7. 掌握生成器函数工作原理。
二、实验内容及结果
1. 编写函数,实现根据键盘输入的长、宽、高之值计算长方体体积。
def main():
value = input("请输入长方体的长、宽、高(空格分隔):")
length, width, height = [eval(i) for i in value.split(" ")]
volume = length * width * height
print("长方体的体积为%.2f" % volume)
main()
![图片描述](https://img-blog.csdnimg.cn/img_convert/0a6eb1c640be19d28a440814c45fefbf.png)
2. 编写函数,使用递归函数f(n)实现斐波那契数列中小于等于参数n的所有值。
def f(n):
if n == 1 or n == 2:
return 1
return f(n - 1) + f(n - 2)
def main():
num = int(input("请输入斐波那契数列的阶数:"))
print("斐波那契数列中小于等于参数{}的所有值:".format(num), end="")
for i in range(num - 1):
print(f(i + 1), end=",")
print(f(num))
main()
![图片描述](https://img-blog.csdnimg.cn/img_convert/7b3ac2387fa38b8c7d4a696a0d791404.png)
3. 编写函数,从键盘输入一个整数,判断其是否为完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如:6=1+2+3,28=1+2+4+7+14。
def main():
num = int(input("请输入一个整数:"))
total = 0
for i in range(1, int(num / 2) + 1):
if num % i == 0:
total += i
if total == num:
print("%d是一个完全数" % num)
else:
print("%d不是一个完全数" % num)
main()
![图片描述](https://img-blog.csdnimg.cn/img_convert/cb4480f7b1a91c35894ee90ae228fed0.png)
![图片描述](https://img-blog.csdnimg.cn/img_convert/a2e1461a1a578603592aec0fda2a10d2.png)
4. 编写函数,从键盘输入参数n,使用递归函数H(n)实现下列特征方程中小于等于参数n的所有值。 H(0)=0; H(1)=1; H(2)=2; H(n)= H(n-1)+9H(n-2)-9H(n-3)
def H(n):
if 0 |