#函数基础
#函数:将重复公共的代码抽象出来,多次调用,
封装代码,函数把业务逻辑打包起来,我们使用时直接调用,不必关心内部是怎样实现的,
降低项目的实现难度,实现某一种功能.好处:减少重复代码,节省代码量,模块逻辑清晰
def calculate_area®:
print(‘圆的面积’,3.14 * r * r)
calculate_area(151)
calculate_area(3)
calculate_area(10)
#语法
##函数定义:关键字def(define) 函数名(参数): 语句块
###参数:函数运行前需要告诉函数一些运行时需要的信息原料、数值,函数根据传入的参数,
参与内部的逻辑运算。
#函数调用:函数名(参数)
##函数
c = int(input(’’))
a = int(input(’’))
b = int(input(’’))
max = a
if a > b:
max = a
if a > c:
max = a
else:
max = c
elif a < b:
if b > c:
max = b
else:
max = c
print(max)
#递归 recursion
##引题:计算10的阶乘
total = 1
for i in range(1,11):
total =total * 1
print(total)
#换一种思路
#例如计算5
#5! = (1234)5 = 4! * 5
#4! = (123)*4 = 3 * 4!
#4! = 2!*3 2! = 1! * 2
#所以 5! = (((1!*2)*3)4)5
#所以 n1=(n-1)! n n>=2
#结论:f(n) = f(n-1) n n>=2
def factorial(n):
if n == 1:
return 1
return factorial(n-1) * n
print(factorial(10))
factorial(5)
#分析,当factorial(5)开始调用时
#表达式变化为第一次函数返回值f(4) * 5
#表达式变化为第二次(f(3)*4)) * 5
#表达式变化为第三次((f(2)*3)*4)*5
#表达式变化为第四次(((f(1)*1)*3)*4)5
#表达式变化为第五次(((11)*3)*4)*5
#可能出现的错误:超过最大递归深度RecursionErrer:maximum recursion depth exceeded
#递归深度:递归需要函数调用自身,调用一次递归函数实际会调用多次函数,
每调用一次称为深度加1,都会增加系统内存开支,所以python 规定了最大的深度998.
#递归思维分析问题一般步骤:1找函数调用自己的规律.2找参数偏移规律,3找跳出条件。
#递归好处:个别问题用循环难以解决,递归思维叫自然可以方便解决