一、递归函数

函数递归调用(特殊嵌套调用):在函数本身调用过程中直接或间接调用

递归必须有两个明确的阶段。

递归:强调每递归调用一层,进入下一层,就要减少递归问题的规模。

回溯:递归必须有明确的终止条件,如果满足该条件,递归必须结束

开始逐层追溯

递归的精髓在于通过不断的重复接近最终结果

示例:使用递归实现列表二分法查找元素

有从小到大排列的整数列表

Nums=[1,3,711,22,34,55,78,111,115,137,149,246,371]

Def search (search _ num,nums) :

Print(nums)

If len(nums)==0:

Print('not exists ')

Return

Mid_index=len(nums) //2

if search _ num nums[mid _ index]:

# in the right

nums=nums[mid _ index 13360]

搜索(search _ num、nums)

elif search _ numnums[mid _ index]:

# in the left

Nums=nums[:mid_index]

搜索(search _ num、nums)

Else:

Print('find it ')

搜索(31,nums)

第二:匿名函数

1: #著名函数:基于函数名重用

2: #匿名函数:没有绑定名称的结局一次性收回

# f=ram BDA x、y : x y

# print(f)

# print(f(1,2))

第三:与ram BDA函数#max min map filter sorted一起使用的常用内置函数

Salaries={

Egon':3000,

Alex ' :10000000,

吴佩琪' :10000,

元昊:2000

}

# max的工作方式

#1首先将可重复对象更改为迭代器对象

#2 res=next(迭代器对象)将res作为参数传递给key中指定的函数,并使用函数的返回值作为判断标准

# def func(k):

# return salaries[k]

# print (max (salaries,key=func)) # next (ITER _ s)

#'egon ',v1=func('egon ')

# ' Alex ',v2=func(' Alex ')

#'wupeiqi ',v3=func('wupeiqi ')

# '元浩',v4=func('元浩')

Res=max (salaries,key=lambda key 3360 salaties[key])#与lambda函数一起挑选工资最高的人

打印(RES)

Print (min (salaries,key=lambda k 3360 salaries[k]))# next(ITER _ s)#提取最低工资的人的原则与max相同

# salaries={

# 'egon':3000,

# 'alex':10000000,

# 'wupeiqi':10000,

# '元昊' :2000

#}

# print (sorted (salaries,key=lambda k3360 salaries [k],reverse=true)) #按薪资对字典中的人物排序,reversse

# map的工作原理

#1 首先将可迭代对象变成迭代器对象

#2 res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,然后将该函数的返回值当作map的结果之一

# aaa=map(lambda x:x+"_SB",names)

# print(aaa)

# print(list(aaa))

# filter的工作原理#过滤函数

#1 首先将可迭代对象变成迭代器对象

#2 res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,然后filter会判断函数的返回值的真假,如果为真则留 下res

names=['alexSB','egon','wxxSB','OLDBOYSB']

# print([name for name in names if name.endswith('SB')])#列表推到式取出以SB结尾的名字

aaa=filter(lambda x:x.endswith('SB'),names)#使用过滤函数取出以SB结尾的名字

print(aaa) #迭代器对象

print(list(aaa))

四:其他需要掌握的内置函数:

1,bytes

# res='你好'.encode('utf-8')#将unicode字符转成字节类型

# print(res)

# res=bytes('你好',encoding='utf-8')#直接用bytes可以转换

# print(res)

2,chr 参考ascii表将数字转成字符,ord将字符转换成对应的数字

# 参考ASCII表将数字转成对应的字符

# print(chr(65))

# print(chr(90))

# 参考ASCII表将字符转成对应的数字

# print(ord('A'))

3,divmod 求商和余数

# print(divmod(10,3))#打印结果为3余1

4,enumerate 枚举

# l=['a','b','c']

# for k ,item in enumerate(l):

# print(k,item)

5, eval 把字符串中的表达式拿出来运行一下

# l='[1,2,3]'

# l1=eval(l)#将列表形式的字符串取出来,拿到一个列表,可以依靠索引取值,多用于从文件中取出列表,字典之类的 数据类型

# print(l1,type(l1))

# print(l1[0])

6,pow

# print(pow(3,2,2)) #与 (3 ** 2) % 2类似,先平方再求余

7,round 四舍五入

# print(round)) #结果为3

#print(round))#结果为4

8,sum求和函数

# print(sum(range(101))) #1到100的值

9,—import— 用来导入以字符串形式输入的模块

module=input('请输入你要导入的模块名>>: ').strip() #module='asdfsadf'

m=__import__(module)

prin())

五:其他需要了解的内置函数

1, # print(abs(-13)) #求绝对值的方法

2, # print(all([1,2,3,])) #全部为True则为真

3, # print(all([])) #空的可迭代对象为真

4, # print(any([0,None,'',1])) #有一个为True则为True

5, # print(any([0,None,'',0])) #False

6, # print(any([])) #空列表为假

7, # print(bin(3)) #11 #十进制转换成二进制

8, # print(oct(9)) #11 #十进制转成八进制

9, # print(hex(17)) #11 #十进制转成十六进制

10,# print(callable(len)) #函数是否能被调用

11, # import time

12, # print(dir(time)) #列举出所有:time.名字

13, # s=frozenset({1,2,3}) # 不可变集合

14, # s1=set({1,2,3}) # 可变集合

15, # # print(globals()) #查看全局变量

16, # # print(locals()) #查看局部变量

17, # hash([1,2,3]) #是否可以被hash

18, # def func():

# """

# 文档注释

# :return:

# """

# pass

# print(help(func)) #help函数查看一个函数的帮助文档

19, # l=['a','b','c','d','e']

# s=slice(1,4,2) #类似于先定义一个切片方式,以后可以方便连续使用

# print(l[1:4:2])

# print(l[s])

20,# print(vars())#返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。

1.《(如何bin文件转换成chr文件)如何将文件转换成pdf》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《(如何bin文件转换成chr文件)如何将文件转换成pdf》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3217252.html