递归和对面对象编程初步

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__()方法, 那么生成对象的时候一定要对应传入参数

  

posted @ 2017-04-14 16:27  weihuchao  阅读(171)  评论(0编辑  收藏  举报