递归和对面对象编程初步
1 递归调用
程序自己调用自己就是递归
递归特点: 运算类似, 一般具有递推公式的
递归的写法:
要设置明确的停止情况
在调用自身的时候, 自身函数本身不作为值参与运算的话更胜内存
利用二分法查找有序序列的值的递归写法如下
data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35]
def search(num, data):
if len(data) == 1 and data[0] != num:
print("没有该值")
return
midle = int(len(data) / 2)
if num < data[midle]:
data = data[0:midle]
search(num, data)
elif num > data[midle]:
data = data[midle:]
search(num, data)
else:
print("找到了")
return
search(1, data)
2 面向对象编程初步
类的定义
class 类名:
类体
类中的方法第一个参数是self, 表示对象自身
对象可以通过.的方式绑定新的方法或者变量
对象可以直接调用类中的值
通过类名可以调用函数, 只不过需要传入self对应的参数
类名.变量可以直接访问类中的变量
可以通过定义__init__(self)函数来定义构造方法, 但是python没有默认构造方法, 因此如果定义了__init__()方法, 那么生成对象的时候一定要对应传入参数
人若有恒 无所不成