迭代

# 迭代是重复做一件事情
# 递归:每个人都比前一个大两岁age(n)=age(n-1)+2
# def age(n):
# if n==1:
# return 10
# else:
# return age(n-1)+2
#
# print(age(5))

# 递归的效率低
# 死循环
# import sys
# sys.setrecursionlimit(20)
#
# def func():
# print('from func')
# func()
#
# func()

# def func(n):
# if n==10:
# return 'a'
# print('from func')
# func(n-1)
#
# print(func(11))

# data=[1,3,6,7,8,9,34,56,113,1111,2222,3333]
# num=13
# i=0
# while True:
# if num==data[i]:
# print('find it')
# break
# i+=1

# 1、必须有一个明确的结束条件
# 2、每次进入更深一层递归时,问题规模相比上次递归都应有所减少

# 二分法
# def search(num,data):
# print(data)
# if len(data)>=2:
# mid_index=int(len(data)/2)
# mid_value=data[mid_index]
# if num>mid_value:
# # num在列表右边
# data=data[mid_index:]
# search(num,data)
# elif num<mid_value:
# data=data[:mid_index]
# search(num,data)
# else:
# print('find it,ok')
# return
# elif data[0]==num:
# print('find it,ok')
# else:
# print("don't find it")
# return
#
# search(56,data)
# search(113,data)
# search(1000,data)

# 递归
# 介绍函数式编程
# y=2*x+1

# l=[]
# def test(l,item):
# l.append(item)
# return l
#
# e=test(l,'aaa')


# 由于很多地方都会改l,所以当执行e=test(l,'a223')时,得到的结果是我们不知道的
# e=test(l,'a223')
# print(e)

# 为了解决这个问题,就需要函数式编程

# y=2*x+1
# x=5
# def test(x):
# return 2*x+1
#
# print(test(5))

# 面向对象:例如游戏角色,可扩展性,连角色都可以创造出来
# 面向过程:流水线设计了不能改


原文地址:https://www.cnblogs.com/jensenxie/p/9130122.html