三元表达式、递归、匿名函数

三元表达式

x=10

y=11

res=x if x > y else y

三元仅用于:

1.成立时返回一个值

2.不成立时返回一个值

 

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

def foo ( )

  print('from foo')

  foo( )

foo( )

递归分为两个阶段:

1.回溯(注意:一定要在满足某种条件结束)

2.递推

 

总结:

1.递归一定要有一个明确地结束条件

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

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

 

匿名函数

f=lambda x,n : x**n

强调:1.匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的。

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

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

 

def func(x,y,z=1):

  return x+y+z

匿名

lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字

func=lambda x,y,z=1:x+y+z 

func(1,2,3)

#让其有名字就没有意义

 

内置函数

#注意:内置函数id()可以返回一个对象的身份,返回值为整数。这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以内存地址为准。is运算符用于比较两个对象的身份,等号比较两个对象的值,内置函数type()则返回一个对象的类型

#更多内置函数:https://docs.python.org/3/library/functions.html?highlight=built#ascii

 

posted @ 2018-04-02 16:45  泛夜泰克  阅读(212)  评论(1编辑  收藏  举报