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
这个博客里写了递归与非递归两种方式。