三元表达式
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