200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 三元函数的几何图形一般是_三元表达式 递归 内置函数

三元函数的几何图形一般是_三元表达式 递归 内置函数

时间:2020-07-11 18:59:30

相关推荐

三元函数的几何图形一般是_三元表达式 递归 内置函数

三元表达式

三元表达式仅应用于:

1.条件成立返回一个值

2、条件不成立返回一个值。

若一般函数表达如下

比大小:

def max2(x,y):if x>y:

returrn xelse:returny

res=max2(10,11)

print(res)

若我们用三元表达式表达:

def max2(x,y):return x if x> y elsey

print(max2(10,11)

由此对比 三元表达式

就会比一般函数表达简单 不复杂, 由之前的几行代码 最后3行代码搞定

二、函数的递归:

函数的递归调用,即在函数调用的过程中,又直接或间接的调用了函数的本身

直接调用:

def foo():

print('from foo')

foo()

foo()

直接调用

第一层结束foo(). 需要第2层代码块里的foo()结束,而第二层结束又需要冲洗调用foo()。。。。。以此类推 。。 死循环。

这个主要是讲 第一层结束 需要第二层给出结果, 第二层结束需要第三层给出结果, 直至给个结果出来 (结束回溯)才会重新反馈给上一层,然后由上一层的结果在返回给上上一层, 以此类推。直至调用的函数有了结果

间接调用

def bar():

print('from bar')

foo()

def foo():

print('from foo')

bar()

foo()

原理同上,调用foo() 在运行foo()代码块 需要调用bar()由bar ()的 结果来给到foo(),在运行bar()代码块时也会调用foo(), 由foo()的结果来给到bar(). 虽然这个也是一个死循环。但是能很清楚的讲述递归 含义

递归:

递归分为两个阶段:

1:回溯:

注意:一定要在满足某种条件结束回溯,否则的会无限递归

2、递推

总结:

1、递归一定要有一个明确的结束条件

2、每进入下一次递归,问题的规模都应该减少

3、在python中没有尾递归优化

完整的递推

age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=18def age(n):if n ==1:return 18

return age(n-1)+2age(5)

print(age(5))

#打印结果26

小练习

要求把列表里每个元素都打印出来

items=[1,[2,[3,[4,[5,[6,[7,[8,]]]]]]]]

def tell(l):for item inl:if type(item) isnot list:

print(item)else:

tell(item)

tell(items)

匿名函数:

匿名函数:没有名字,一次性使用, 随时定义

有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能

强调:

1、匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的

2 、匿名函数的参数规则,作用域关系与有名函数是一样的

3、匿名函数的函数体通常应该是一个表达式,该表达时必须要有一个返回值

匿名函数(lambda)应用:lambda x:代码块 ,nums ( nums 是给前面的代码块赋值的)

salaries={'egon':3000,'alex':100000000,'wupeiqi':10000,'yuanhao':2000}

defget(k):returnsalaries[k]

print(max(salaries,key=lambda x:salaries[x]))

#key=lambda x:salaries[x] 这个是出薪资最高的那个人的名字 而不是字典里key 的名字按照字母顺序 比出高低

lambda x:salaries[x] 这就是一个匿名函数 比完就可以不用再用直接扔掉

print(min(salaries,key=lambda x:salaries[x]))

打印结果 yuanhao

与sorted连用 排序

salaries={'egon':3000,'alex':100000000,'wupeiqi':10000,'yuanhao':2000}

salaries=sorted(salaries)

print(salaries)#['alex', 'egon', 'wupeiqi', 'yuanhao']

#默认按照字典的键的大小排序,不是按照工资高低排序

salaries=sorted(salaries,key=lambda x:salaries[x])

print(salaries)

#['yuanhao', 'egon', 'wupeiqi', 'alex'] 这个是按照升序的方式排列

salaries=sorted(salaries,key=lambda x:salaries[x],reverse=True) #降序

# print(salaries) # 这个是按照降序的方式排列

###打印结果['alex', 'wupeiqi', 'egon', 'yuanhao']

与map 连用 映射关系

求出下列列表元素的平方并组成个列表

nums=[1,2,3,4,5]

res=map(lambda x:x**2,nums)

print(list(res))

#打印结果 [1, 4, 9, 16, 25]

把下面所有人的名字户后面都加上'_SB'

names=['alex','wpeiqi','yuanhao']

res=map(lambda x:x+'_SB',names)

print(list(res))

#打印结果 ['alex_SB', 'wpeiqi_SB', 'yuanhao_SB']

下面名字中egon 后面加上_NB ,其他加_SB。这里要用到三元表达式与匿名函数的结合使用

names=['alex','wpeiqi','yuanhao','egon']

res=map(lambda x:x+'_NB' if x=='egon' else x+'_SB',names)

print(list(res))

打印结果['alex_SB', 'wpeiqi_SB', 'yuanhao_SB', 'egon_NB']

reduce 合并,与 from functools import reduce 连用

fromfunctools import reduce

l=['my','name','is','alex','alex','is','sb']

res=reduce(lambda x,y:x+' '+y,l)

print(res)

#打印结果 my nameis alex alex is sb

filter 过滤

将名字中没有sb结尾的名字过滤掉

names = ['ales_sb','wxx_sb','yxx_sb','egon']

res=filter(lambda x:True if x.endswith('sb') elseFalse,names )

print(list(res))

#打印结果 ['ales_sb', 'wxx_sb', 'yxx_sb'] 将egon 过滤掉

选出年龄超过30岁以上的年龄

ages=[18,19.25,33,50,99]

res=filter(lambda x:x>30,ages)

print(list(res))

#[33, 50, 99]

salaries ={'egon':3000,'alex':100000000,'wupeiqi':10000,'yuanhao':2000}

res=filter(lambda k:salaries[k]>10000,salaries)

print(list(res))

#打印结果# ['alex']

内置函数 表达方式都是 bytes()/ chr()/

bytes 把别的字符编码转成bytes 的字符编码

chr 就用在一个范围内的整数参数 返回一个对应的字符

divmod 返回的结果 除法取整 以及 余数, 要 给2个参数值。

enumerate 多用于for循环中 对于一个可迭代对象,enumerate 将其组成一个索引序列,利用他可以同时获得一个索引和值

eval 将字符串str当成有效的表达式来求值并返回计算借故偶

filter过滤 将所不需要的内容过滤掉

id查看内存地址

input 交互输入

iter 加可迭代对象,得到的是 一个生成器对象

len 统计长度

map 一一映射关系

max 求最大值

min 求最小值

ord 是chr()函数的配对函数,以一个字符串作为参数,返回对应的ascii数值

sorted 升序排序

pow(2,3,3) 里面要传3个参数 表达的意思为 2 的3次方 在除以3 最后取余 得出的结果为1个返回值。

reversed():反转,

round():四舍五入

slice():切片 可以给 slice()命名一个变量名, 可以给多个数据按照同一个切片要求取值

sum() 求和

zip 拉链

left='hello'right={'x':1,'y':2,'z':3}

res=zip(left,right)

print(list(res)) 拉链式的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。