python学习day17

# 上周复习
    #迭代器
    #生成器进阶

    #内置函数
        #55个
        #带key方法的函数:max、min、filter、map、sorted
        #红色和黄色的方法为重点
    #匿名函数
        #lambda 参数1,参数二:返回值表达式
        #和5个带key的内置函数可结合使用


#递归函数
    #什么是递归:在函数中自己调用自己

#最大递归深度测试 #997
# n = 0
# def func():
#     global n
#     n+=1
#     print(n)
#     func()
# func()
# RecursionError: maximum recursion depth exceeded while calling a Python object
# -->超出最大递归深度

#修改最大递归深度测试#3809

# import sys
# sys.setrecursionlimit(100000)
# n = 0
# def func():
#     global n
#     n+=1
#     print(n)
#     func()
# func()

# 1    金鑫          40
# 2    武sir      42
# 3    egon          44
# 4    alex       46

# def age(n):
#     if n == 1:
#         return 40
#     else:
#         return age(n-1)+2
#
# def age(4):
#     if 4 == 1:
#         return 40
#     else:
#         return 46
# def age(3):
#     if 3 == 1:
#         return 40
#     else:
#         return 44
# def age(2):
#     if 2 == 1:
#         return 40
#     else:
#         return 42
#
# print(age(4))

#三级菜单
# menu = {
#     '北京': {
#         '海淀': {
#             '五道口': {
#                 'soho': {},
#                 '网易': {},
#                 'google': {}
#             },
#             '中关村': {
#                 '爱奇艺': {},
#                 '汽车之家': {},
#                 'youku': {},
#             },
#             '上地': {
#                 '百度': {},
#             },
#         },
#         '昌平': {
#             '沙河': {
#                 '老男孩': {},
#                 '北航': {},
#             },
#             '天通苑': {},
#             '回龙观': {},
#         },
#         '朝阳': {},
#         '东城': {},
#     },
#     '上海': {
#         '闵行': {
#             "人民广场": {
#                 '炸鸡店': {}
#             }
#         },
#         '闸北': {
#             '火车战': {
#                 '携程': {}
#             }
#         },
#         '浦东': {},
#     },
#     '山东': {},
# }
#
# print(menu)

#算法
    #什么是算法:人脑复杂,计算机简单

#二分法基础版
# l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
#
# def func(l,aim):
#     mid = (len(l))//2
#     if l:
#         if aim > l[mid]:
#             func(l[mid+1:],aim)
#         elif aim < l[mid]:
#             func(l[:mid],aim)
#         elif aim == l[mid]:
#             print("bingo",mid)
#     else:
#         print('找不到')
# func(l,66)

#升级版
# l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
# def find(l,aim,start=0,end=None):
#     end =len(l) if end is None else end
#     mid_index = (end - start) //2 + start
#     if start<=end:
#         if l[mid_index]<aim:
#             return find(l,aim,start=mid_index+1,end=end)
#         elif l[mid_index]>aim:
#             return find(l, aim, start=start, end=mid_index-1)
#         else:
#             return mid_index
#     else:
#         return  '找不到这个值'
# ret=find(l,100)
# print(ret)

# 斐波那契  # 问第n个斐波那契数是多少
# 1,1,2,3,5,8,13

# def func(n):
#     if n==1 or n==2:
#         return 1
#     else:
#         return  func(n-1)+func(n-2)
# ret = func(7)
# print(ret)
# 阶乘
# def func(n):
#     if n == 1:
#         return 1
#     else:
#         return n*func(n-1)
# 
# ret = func(5)
# print(ret)

猜你喜欢

转载自www.cnblogs.com/wujunjie-sir/p/9216931.html
今日推荐