python基础-day15

xiaoxiao2021-02-28  47

about built-in function, map()和filter()一点辨识, 前者侧重在对源数据进行某种加工,进而产生新的数据, 后者侧重在对源数据进行某种条件的过滤,进而产生新的数据,

# 初识递归 def func1(): print(666) while True: func1() #*****************************分割线 import sys sys.setrecursionlimit(10000) #更改递归层数的限制, def func1(n): n += 1 print(n) func1(n) func1(0) # 执行一次开辟一个空间,python对内存有一个保护机制,递归到一定层数,就会自我保护。

# 二分法递归结合写法 l = [2, 3, 5, 10, 15, 33, 55] #这种方法没有调通,因为对列表进行了切片,索引比较混乱 def two_search(li, aim): mid_index = (len(li)-1) // 2 # 3 if li[mid_index] < aim: return two_search(li[mid_index+1:],aim) elif li[mid_index] > aim: return two_search(li[:mid_index],aim) #([2,3,5],3) elif li[mid_index] == aim: return mid_index else: return '没有此值' print(two_search(l,17)) #这种方法是正确的 def two_search(li, aim, start=0, end=None): end = len(li)-1 if end is None else end mid_index = (end - start) // 2 + start # 3 if start <= end: if li[mid_index] < aim: return two_search(li, aim, start=mid_index+1, end=end) elif li[mid_index] > aim: return two_search(li, aim, start=start, end=mid_index-1) #([2,3,5],3) elif li[mid_index] == aim: return mid_index else: return '没有此值' else: return '没有此值' print(two_search(l,100))

https://blog.csdn.net/lovesummerforever/article/details/24588989

这个博客里写了递归与非递归两种方式。

转载请注明原文地址: https://www.6miu.com/read-2620340.html

最新回复(0)