zoukankan      html  css  js  c++  java
  • 递归函数,匿名函数,内置函数

    # 1,什么是递归函数,递归函数是在调用函数本身,直接或者间接调用
    # 递归函数有递推和回溯两个阶段
    # 递推:一层层地调用自身,进入下一层问题规模必须减少
    # 回溯:有一个明确的结束条件,但条件满足的时候一层层回溯
    def num(x):
    if x==0:
    return
    num(x-1)

    # 二分法:
    nums=[1,2,3,4,5,6,7,8,9]
    def seach(seach_nums,nums):
    if len(nums)==0:
    print('have no find')
    return
    print(nums)
    mid_index=len(nums)//2
    if seach_nums<nums[mid_index]:
    nums=nums[:mid_index]
    seach(seach_nums,nums)
    elif seach_nums>nums[mid_index]:
    nums=nums[mid_index+1:]
    seach(seach_nums,nums)
    else:
    print('find it ')
    seach(9,nums)

    # 匿名函数:
    # res=(lambda x,y:x+y)(1,2)
    # 有名函数:基于函数名重复使用
    # 匿名函数:没有绑定名字,只用一次即回收

    # max,min,map,filter,sorted
    # 1max的工作原理
    # 1,首先将可迭代对象变成迭代器对象
    # 2res=next(可迭代对象).将res当作参数传给key指定函数,然后将函数的返回值当作判断依据
    salary={'alex':200,
    'egon':2000,
    'jayce':188}
    def func(k):
    return salary[k]
    print(max(salary,key=func))

    l=[1,2,43,5,6,7,7]
    sorted(l,reverse=True)


    3,map的工作原理
    (1),首先将可迭代对象变成迭代器对象
    (2),res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,
    然后将该函数的返回值当作map的结果之一
    names=['wxx','lxx','zhangmingyan']
    aaa=(lambda x:x+'sb' ,names)
    print(aaa)

    4,filter的工作原理
    1首先将可迭代对象变成迭代器对象
    2res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,
    然后filter会判断函数的返回值的真假,如果真则留下res
    names=['alex','egon','wxx']
    aaa=filter(lambda x:x.endswith('sb'),names)


    module=input('请输入')
    m=__import__(module)
    import可导入字符串格式模块名
  • 相关阅读:
    2017年第八届蓝桥杯C/C++ C组国赛 —— 第一题:哥德巴赫分解
    Tree Walk Aizu
    Tree Walk Aizu
    Binary Trees Aizu
    有效的括号
    划分整数
    最大子矩阵和
    最大子段和
    最长上升子序列
    合唱队形
  • 原文地址:https://www.cnblogs.com/lijieshi/p/9184524.html
Copyright © 2011-2022 走看看