# 官网表示:python默认的最大递归深度为1000次
# import sys
# print(sys.getrecursionlimit())
# print(sys.setrecursionlimit(2000))
count = 1
def index():
global count
count += 1
print(count)
print('from index')
index()
index()
# def func():
# print('from func')
# index()
# def index():
# print('from index')
# func()
# index()
def my_partner(target_num, l): # target_num=321 l=l
if len(l) == 0:
print('不好意思 我尽力 没找到')
return
# 先获取中间位置索引值
middle_index = len(l) // 2 # 8
# 判断中间索引对应的值比目标值大还是小
if target_num > l[middle_index]:
# 说明要找的元素只可能出现在列表的右侧
l_right = l[middle_index + 1:] # l[9:]
print(l_right)
my_partner(target_num, l_right)
elif target_num < l[middle_index]:
# 说明要找的元素只可能出现在列表的左侧
l_left = l[:middle_index]
print(l_left)
my_partner(target_num, l_left)
else:
print('找到了', target_num)
# my_partner(444, l) 找不到 需要添加结束条件
# my_partner(11, l) # 要查找的元素在开头 那么还没有依次查找的效率高
# def my_max(a, b):
# return a if a > b else b
name_list = ['jason', 'kevin', 'tony', 'jerry']
# 给列表中所有的人名加上_DSB后缀
'''传统做法'''
# 1.定义一个空列表
# new_list = []
# 2.for循环老列表
# for name in name_list:
# 3.生成新的名字
# new_name = '%s_DSB'%name
# 4.添加到新的列表中
# new_list.append(new_name)
# print(new_list)
'''列表生成式'''
# res = ['%s_DSB' % name for name in name_list]
# print(res)
'''传统做法'''
# 1.定义一个空列表
# new_list = []
# # 2.for循环老列表
# for name in name_list:
# # 3.生成新的名字
# if name == 'jason':
# continue
# else:
# new_name = '%s_DSB'%name
# # 4.添加到新的列表中
# new_list.append(new_name)
# print(new_list)
'''列表生成式'''
# res = ['%s_DSB' % name for name in name_list if name != 'jason']
# print(res)
# l1 = ['name', 'age', 'hobby']
# l2 = ['jason', 18, 'read']
# new_dict = {}
# for i in range(len(l1)):
# new_dict[l1[i]] = l2[i]
# print(new_dict)
# count = 0
# for i in l1:
# print(count,i)
# count += 1
# 枚举
'''
enumerate(l1)
针对该方法使用for循环取值 每次会产生两个结果
第一个是从0开始的数字
第二个是被循环对象里面的元素
还可以通过start参数控制起始位置
'''
# for i, j in enumerate(l1, start=1):
# print(i, j)
name_list = ['jason', 'kevin', 'tony', 'jerry']
# res = {i: j for i, j in enumerate(name_list) if j != 'jason'}
# print(res)
# res1 = {i for i,j in enumerate(name_list)}
# print(res1,type(res1))
# 迭代器
res2 = (i for i,j in enumerate(name_list))
print(res2)
# print(lambda x:x**2)
# def index():
# pass
# print(index)
# print((lambda x: x ** 2)(2))
# res = lambda x: x ** 2
# print(res(2))
# map() 映射
# l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# def index(n):
# return n ** 2
# print(list(map(lambda x:x**2, l)))