您的位置:首页 > 财经 > 产业 > 企业门户中的基本信息包括_百度权重查询方法_西安搜建站科技网站_h5制作

企业门户中的基本信息包括_百度权重查询方法_西安搜建站科技网站_h5制作

2024/10/31 3:28:29 来源:https://blog.csdn.net/m0_45491627/article/details/142366240  浏览:    关键词:企业门户中的基本信息包括_百度权重查询方法_西安搜建站科技网站_h5制作
企业门户中的基本信息包括_百度权重查询方法_西安搜建站科技网站_h5制作

函数递归、函数式与其他函数

文章目录

  • 函数递归、函数式与其他函数
  • 一、函数递归
  • 二、函数式
    • 1.匿名函数
    • 2.max/min函数
    • 3.sorted函数
    • 4.map函数
    • 5.reduce函数
    • 6.filter函数
  • 三、其他函数
    • 1.bytes
    • 2.eval
    • 3.round
    • 4.sum
    • 5.__import__
    • 6.zip
    • 7.不常用的一些函数

一、函数递归

函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身。
递归必须要有两个明确的阶段:

  • 递推:一层一层递归调用下去
  • 回溯:递归必须要有一个明确的结束条件,在满足该条件时结束递推
def func(count):if count>10:return #结束条件func(count+1)#递推调用函数funcfunc(0)

当递归调用函数而没有停止条件时,就会出现无限循环的过程,但是python对函数的递归深度做出了限制(默认为1000),但递归次数大于最大递归深度时,就会报错。
sys.setrecursionlimit函数可以修改递归的最大深度。

def func(count):if count>2000:return #结束条件func(count+1)#递推调用函数funcfunc(0)
<<<RecursionError: maximum recursion depth exceeded in comparisonimport sys
sys.setrecursionlimit(3000)
def func(count):if count>2000:return #结束条件func(count+1)#递推调用函数funcfunc(0)

使用递归的例子:

#递归实现计算阶乘
def comput(n):if n in [1,0]:return 1else:return comput(n-1)*na=input()
if a.isdigit():print(comput(int(a)))

二、函数式

1.匿名函数

匿名函数:没有绑定名字的下场是用一次就回收了

res=(lambda x,y:x+y)(1,2)

上述代码中的lambda表示匿名函数,x,y表示匿名函数的变量,:后的x+y表示匿名函数的计算过程,匿名函数加上(1,2)表示调用匿名函数并传递参数,返回值赋给res变量。
若只写res=lambda x,y:x+y 表示将匿名函数的函数地址传给res变量,只需res(1,2)就可以调用刚刚的匿名函数并返回计算结果。

2.max/min函数

以max函数为例,max(iterable,key)
max的工作原理:首先将可迭代对象(iterable)变成迭代器。每次去一个迭代器的值当作参数传给key指定的函数,然后将该函数的返回值当作判断依据,最后返回值最大的那个。(后面介绍的函数具体工作原理和max相似,下面不在展开介绍了)

#比较列表中元组的第二个元素
a=[(3,5),(1,10),(8,4)]
print(max(a, key=lambda x: x[1]))
<<<(1,10)

3.sorted函数

sorted(iterable,reverse,key)将可迭代对象中的值按key函数规则排序,reverse为True表示降序,为False表示升序,默认为False

#按列表中元组的第二个元素升序排序
a=[(4,2),(9,0),(2,1)]
b=sorted(a,key=lambda x:x[1])
print(b)
<<<[(9, 0), (2, 1), (4, 2)]

4.map函数

map(key,iterable)将可迭代对象按key函数处理并返回处理后的map对象

#求平方
a=[1,2,3]
b=list(map(lambda x:x**2,a))
print(b)
<<<[1,4,9]

map中也可以传入多个可迭代对象

#求和
a=[1,2,3]
b=[4,5,6]
c=list(map(lambda x,y:x+y,a,b))
print(c)
<<<[5, 7, 9]

5.reduce函数

reduce(key,sequence,default)将可迭代对象中的值按key函数要求进行合并操作并加上default

from functools import reduce
res=reduce(lambda x,y:x+y+3,[1,2,3],100)
print(res)
<<<115

6.filter函数

filter(key,iterable)将可迭代对象中的值按key函数的要求进行过滤,返回过滤以后的filter对象

a=[1,2,3]
b=filter(lambda x:x>2,a)
print(list(b))
<<<[3]

三、其他函数

1.bytes

bytes函数用于存放二进制字符

res=bytes('你好',encoding='utf-8')
print(res)
<<<b'\xe4\xbd\xa0\xe5\xa5\xbd'

2.eval

eval函数可以用于取出字符串中的值,也可用于运行字符串中的代码

a='1'
b=eval(a)
print(type(b))
<<< <class 'int'>a='print(111)'
eval(a)
<<<111

3.round

round函数表示四舍五入

#四舍五入
a=3.5
print(round(a))
<<<4#向下取整
a=3.3
print(int(a))
<<<3#向上取整
import math
a=3.3
print(math.ceil(a))
<<<4

4.sum

sum(iterable,default)将可迭代对象中的值求和并加上default

a=[1,2,3,4]
print(sum(a,10))
<<<20

5.import

__import__函数可以以字符串的方式导入模块

a=__import__('time')
a.sleep(2)

6.zip

zip函数可以将多个可迭代对象合为元组

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]z = zip(list1, list2, list3)
z = list(z)
print(z)
<<<[(1, 'a', True), (2, 'b', False), (3, 'c', True)]

7.不常用的一些函数

abs表示去绝对值
all/any表示查看可迭代对象的元素是否全为True/存在True,是则返回True,否则返回False
callable函数表示查看对象是否可以调用
frozenset({1,2,3}) 表示创建不可变集合
hash函数表示返回对象的hash值,只有不可变对象才可hashable

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com