三元表达式

三元表达式仅应用于:

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)) 拉链式的

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

  1. python自带的函数有哪些_为什么说 Python 内置函数并不是万能的?

    在Python猫的上一篇文章中,我们对比了两种创建列表的方法,即字面量用法 [] 与内置类型用法 list(),进而分析出它们在运行速度上的差异. 在分析为什么 list() 会更慢的时候,文中说到它 ...

  2. 以下不是python内置函数的是_为什么说python内置函数并不是万能的?

    作者:豌豆花下猫 来源:Python猫 之前我们对比了两种创建列表的方法,即字面量用法 [] 与内置类型用法 list(),进而分析出它们在运行速度上的差异. 在分析为什么 list() 会更慢的时候 ...

  3. day4 匿名函数、装饰器、生成器、迭代器、内置函数、 json 与 pickle 模块

    文章目录 1.列表生成式 2.匿名函数 3.装饰器 4.生成器 5.迭代器 6.内置函数 7.json & pickle 序列化与反序列化 1.列表生成式 可通过特定语句便捷生成列表 list ...

  4. Python学习 Day8-2 python的三元表达式(三目运算符)、lambda表达式、内置函数

    Python中的三元表达式(三目运算符) 语法:为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号) >>print(1 if 5 > 3 else 0) 1 Py ...

  5. 2019-07-12 函数递归、二分法、匿名函数、三元表达式、内置函数

    一.递归函数 我理解为递归函数也是函数嵌套的一种,函数在调用时,直接或间接的调用了自身. 简单的直接调用本身(这种调用会一直循环下去,会很占内存空间,所以python解释器为了防止无限占用内存,对这种 ...

  6. 什么是python的内置函数_什么是python内置函数

    python的内置函数截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.那今天我们就一起来认识一下python的 ...

  7. python内置函数可以返回数值型序列中所有元素之和_智慧职教: Python内置函数________________用来返回数值型序列中所有元素之和。...

    智慧职教: Python内置函数________________用来返回数值型序列中所有元素之和. 答:3, 中国大学MOOC: 叙事性是插画的核心,每一幅插画背后都有一个作者心中的故事,或唯美,或悲 ...

  8. 以下哪个不是python的内置函数_以下哪个 Python 内置函数可以返回列表对象中元素个数。...

    [多选题]假设 x=[0,1,2,3],执行哪些语句之后,x 的值为[0, 1, 2]. [多选题]以下哪些对象的分隔符为逗号. [单选题]已知列表 x=[0,1,2,1,4],那么执行语句 del ...

  9. day12 递归、表达式、内置函数

    #使命:让世界更有智慧 #愿景:更健康.更长久 #价值观:客户第一.团队合作.拥抱变化.本分.激情.敬业#学以致用:编程的核心,是要解决人类的遇到各种问题,提升人类的差异化体验.#公司选择:公司的产品 ...

最新文章

  1. h5 移动端 常见 重要问题记录
  2. optee的RPC设计(模型)详解
  3. 在新浪潮中,服务教育是你的竞争利器
  4. vilatile 深入理解java虚拟机_深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)...
  5. wsl Java开发_WSL2开发环境搭建
  6. asp.net 将bmp格式图片怎么转换为jpg_PNG图片怎么转换成JPG?原来还可以这么转换...
  7. 【Filebeat】windows下安装filebeat
  8. 第五天:在博客路由中使用登录验证,配置 nginx解决前后端跨域
  9. Android 分区布局详解
  10. 手机怎样查看计算机使用记录,如何查看电脑使用记录
  11. 【CPRI协议v7.0】CPRI 8b/10b编码Scrambling功能
  12. lisp 圆柱螺旋线_AutoCAD.Lisp等距3D螺旋线
  13. 学计算机推荐的平板电脑,适合学生的平板电脑_学生平板推荐2020
  14. echarts 饼图的图例的颜色和图例的颜色相同的设置
  15. Nature子刊:教你零基础开展微生物组数据分析和可视化
  16. 十二周四次课(6月11日)
  17. iOS-仿网易云音乐控制器
  18. 程序员:为什么几个月后我自己写的代码也看不懂了?
  19. Cisco服务器怎么安装系统,Cisco MCS服务器上Microsoft操作系统补丁安装发生故障
  20. 计算机 打印机型号编码不可用,打印机显示型号编码不可用

热门文章

  1. Kubernetes(十一)DaemonSet
  2. NOIP2016模拟 JackMa 贪心
  3. 90后美女新奇的营销方案,只用一年就赚到180万,竟如此简单!
  4. badboy+jMeter+jProfile软件测试工具介绍(一)
  5. 目前医疗器械数据库有哪些?最推荐哪些?
  6. SpringBoot系统搭建集成-007-集成Redis
  7. Charlie's Change
  8. rachl与chacl的区别
  9. idea打包war包
  10. 数据库操作总结和记录