python中的关键字---4(匿名/递归函数)

匿名函数

# 匿名函数 别称 : lambda表达式# 函数,没有名字# def wahaha(n):#     return n**2# print(wahaha.__name__)

# qqxing = lambda n : n**2# print(qqxing.__name__)# ret = qqxing(8)# print(ret)

# f = lambda *args:sum(args)# ret = f(1,2,3,4,5)# print(ret)

# 写匿名函数 : 接收两个参数,返回较大值(不用max内置函数)# f1 = lambda a,b : max(a,b)# f2 = lambda a,b : a if a>b else b

# 匿名函数# 定义# 匿名函数的内存地址 = lambda 参数1,参数2 : 返回值/返回值的表达式# 调用# 接收返回值 = 匿名函数的内存地址(参数)

# dic={‘k1‘:10,‘k2‘:100,‘k3‘:30}# def func(k):#     return dic[k]## m = max(dic,key = func)# print(m)

# m = max(dic,key = lambda k:dic[k])# print(m)

# 内置函数+匿名函数l1 = [1,5,7,4,8]# 每一个数的平方%2# ret = map(lambda n : n**2%2 ,l1)# print(list(ret))

l2 = [3,10,20,50,22,7]# 找到大于20的所有数# ret = filter(lambda n : n>20,l2)# print(list(ret))

l3 = [{‘name‘:‘www‘,‘age‘:83},{‘name‘:‘asd‘,‘age‘:38}]# 1.找到年龄大于40的值  filter# 2.将列表中的项按照年龄从小到大排序 sorted# 3.给列表中的每一个人的年龄+1# 4.给列表中名叫www的人的年龄+1  三元运算符+字典拼接

# 1# def func(dic):#     return dic[‘age‘]>40# ret = filter(lambda dic:dic[‘age‘]>40,l3)# print(list(ret))

# 2# def func(dic):#     return dic[‘age‘]# ret = sorted(l3,key=lambda dic:dic[‘age‘])# print(ret)

# 3 lambda 并不能取代函数# def func(dic):#     dic[‘age‘] += 1#     return dic# ret = map(lambda dic : {‘name‘:dic[‘name‘],‘age‘:dic[‘age‘]+1},l3)# print(list(ret))

# 4# 现有两个元组((‘a‘),(‘b‘)),((‘c‘),(‘d‘)),# 请使用python中匿名函数生成列表[{‘a‘:‘c‘},{‘b‘:‘d‘}]# t1 = ((‘a‘),(‘b‘))# t2 = ((‘c‘),(‘d‘))# print(t1,t2)# ret = zip(t1,t2)# def func(tup):#     return {tup[0]:tup[1]}# map(func,ret)# iterator1 = map(lambda tup:{tup[0]:tup[1]} ,ret)# print(list(iterator1))匿名函数lambda常配合内置函数组成表达式,进行简单的判断计算,节省代码,逻辑性强

递归函数
# 1.递归函数的定义 :一个函数在执行的过程中调用了自己# 2.递归在python中的最大深度 : 1000/998# 3.递归的最大深度是可以自己修改的,但是不建议你修改

# 停不下来的递归函数早晚会报错# 了解递归/正确的递归函数

# n = 1,age = q(n+1) -2# n = 2,age = q(n+1) -2# n = 3,age = q(n+1) -2# n = 4,age = q(n+1) -2# n = 5,age = 18

# def q(n):#     if n == 1:#         age = q(n + 1) - 2#         return age#     elif n == 2:#         age = q(n + 1) - 2#         return age#     elif n == 3:#         age = q(n + 1) - 2#         return age#     elif n == 4:#         age = q(n + 1) - 2#         return age#     elif n == 5:#         return 18# ret = q(1)# print(ret)

# return 能够帮助你停止递归,并且把最内层的结果一层一层的返回到最外层# 在最内层函数的返回值,返回的时候永远是离最内层最近的上一层才能接收到返回值
# def q(1):#     if 1 == 1:#         age = 12 - 2#         return 10## def q(2):#     elif 2 == 2:#         age = 14 - 2#         return 12## def q(3):#     elif n == 3:#         age = 16 - 2#         return 14## def q(4):#     elif n == 4:#         age = 16#         return age## def q(5):#     elif n == 5:#         return 18

# def q(n):#     if n < 5:#         age = q(n + 1) - 2#         return age#     elif n == 5:#         return 18# ret = q(1)# print(ret)


二分查找法
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]
# aim = 66# # l中找到中间的值 和 66 对比# def search(l):#     mid = len(l)//2#     mid_value = l[mid]#     if aim > mid_value:#         start = mid+1#         new_l = l[start:]#         search(new_l)#     elif aim < mid_value:#         end = mid#         new_l = l[:end]#         search(new_l)#     else:#         print(‘找到了‘,mid,l[mid])## search(l)
# 递归过程# def search(l):       # 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]#     mid = len(l)//2  # 25//2 = 12#     mid_value = l[mid] # l[12] = 41#     if aim > mid_value: # 66 > 41#         start = mid+1   # 12+1 = 13#         new_l = l[start:]  # new_l = [42,43,55,56,66,67,69,72,76,82,83,88]#         search(new_l)      # search(new_l)#     elif aim < mid_value:#         end = mid#         new_l = l[:end]#         search(new_l)#     else:#         print(‘找到了‘)
 

原文地址:https://www.cnblogs.com/Godisgirl/p/10012914.html

时间: 2024-10-08 18:59:53

python中的关键字---4(匿名/递归函数)的相关文章

Python中的关键字

关键字 keyword 是编程语言中规定具有特殊用途的单词,在编程中不能使用和关键字相同的 标识符.函数名.类名.属性名.方法名. 在Python中可以通过keyword模块来查看具体关键字,代码如下: 1 import keyword #导入模块 2 print(keyword.kwlist) #输出kwlist列表

python中的关键字---1

变量命名规则: 1.变量由字母数字下划线组成2.变量不能以数字开头3.禁止使用python中关键字4.禁止使用中文和拼音5.变量名要区分大小写6.变量名要有意义7.推荐写法. 驼峰体. 大驼峰.AgeOfOldboy 小驼峰.ageOfOldboy 下划线.age_of_oldboy 字符串规则: 字符串拼接,字符串只能和字符串相加字符串不能减法字符串只能和数字相乘字符串不能进行相除 基础数据类型 int,整形,用于计算和比较str字符串,字符串只能和字符串相加,字符串只能和数字相乘bool布尔

python中的关键字global和nonlocal

知识点: global将一个变量变为全局变量 nonlocal改变最近的变量,又不是全局作用. 1.global 在python中,当引用一个变量的时候,对这个变量的搜索按找本地作用域(Local).嵌套作用域(Encolosing function locals).全局作用域(Global).内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则. m = 1 #全局 def fun1(): m = 2 #嵌套 def fun2(): m = 3 #本地 fun2() fun1

python中的关键字---7(re/序列化/Counter模块)

import re  正则 正则表达式 # 元字符 # \w 数字字母下划线 # \W 非数字字母下划线 # \d 数字 # \D 非数字 # \s 空白符(空格\制表符\换行符) # \S 非空白符 # \t 制表符 # \n 换行符 # \b 单词的边界 # . 除了换行符以外的所有 # ^ 开始 # $ 结尾 # [..] 字符组 # [^..] 非字符组 # | 或(包含关系中,长的在前面) # () 分组(在或的两端,在添加量词的时候,findall的时候优先要显示的) # (123\

python中super关键字的用法

class A: def __init__(self):    print "enter A"    print "leave A" class B(A): def __init__(self):    print "enter B"    A.__init__(self)   # old method    print "leave B" >>> b = B() enter B enter A leave

python中的关键字---2(函数基础类)

函数基础 定义函数: def 函数名(): 缩进 函数体(代码块) 调用函数: 函数名 + () 小括号 执行顺序: def func(): 1 print('这大佬黑') 3 func()调用 2 函数的返回值: def func(): 1 print('这大佬黑') 3 return '今晚不溅不散' func()调用 2 返回一个参数的时候是它本身,返回多个就是元组形式显示 当函数体执行到return的时候就结束函数 不写return的时候 默认返回None 写了return不写返回值的时

查看python中的关键字

使用keyword模块验证和查看python关键字 import keyword导入模块 print(keyword.kwlist)打印查看关键字列表 验证某字段是否是python关键字keyword.iskeyword('字段名')

python中的关键字---5(时间/随机模块)

模块 什么是模块?模块就是别人写好的代码,放在一个py文件里,给你使用 模块有几种?三种 : 内置模块\第三方模块\自定义模块 模块是好的 为什么要有模块? 写好了之后直接给你用 - 方便了用户的使用,提高了开发效率 为了节省内存,所以把常用的(但是不是每一个程序都必须用到的)函数\方法 根据分类来将这些函数分到不同的文件中存储起来 所以我们用到哪一类方法,才把这类方法所在的模块导入到内存中,能够最大限度的节省内存 内置函数 是每一个py程序在启动的时候都会加载到内存空间中的内置模块 是以文件的

python 中一些关键字的区别

一.raw_input 和input input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 1.当输入为纯数字时 input返回的是数值类型,如int,float raw_inpout返回的是字符串类型,string类型 2.当输入为字符串表达式时 input会计算在字符串中的数字表达式,而raw_input不会. 比如输入 “57 + 3”: input会得到整数60 raw_input会得到字符串”57 + 3” 比如输入 “5,4,