python总结与习题(二)
python总结
相关习题
1. 计算图形面积的函数
写函数,专门计算图形的面积
其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积
调用函数area(‘圆形’,圆半径) 返回圆的面积
调用函数area(‘正方形’,边长) 返回正方形的面积
调用函数area(‘长方形’,长,宽) 返回长方形的面积
ef area():
def 计算长方形面积():
pass
def 计算正方形面积():
pass
def 计算圆形面积():
pass
代码如下
def area(judge_type,*args):
def rectangle_area(length,wide):
return length*wide
def square_area(side_length):
return side_length**2
def circular(radius):
return 3.14*radius**2
switch = {
"长方形":rectangle_area,
"正方形":square_area,
"圆形":circular
}
if judge_type in switch:
return switch[judge_type](*args)
在python中,没有c语言中的switch语法,如果想实现这个功能,可以通过python的字典映射功能实现
2.写函数,传入一个参数n,返回n的阶乘
使用递归方法
def factorial_recursion(n): #阶乘递归
if n == 1:
return 1
else:
return factorial_recursion(n-1)*n
递归的特点:
- 有明确的结束条件
- 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
- 递归效率低,递归层次过多会导致栈溢出(python递归层次默认最大1000层)
对于尾递归(递归条件在最后return factorial_recursion(n-1)*n
),我们可以使用循环优化效率
使用循环方法
def fact