函数(三)
1.1 递归函数
一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数
def show(num):
print("haha")
#num == 1 表示结束递归调用的条件,不让自己调用自己
if num == 1:
#当满足某个条件的时候,不让自己调用自己
print()
else:
#当num不等于1时,自己调用自己
show(num - 1)
show(3)
递归的注意点,递归函数必须要有结束递归的条件,否则就会崩溃,因为超过了最大递归数
1.2 匿名函数
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤
语法: lambda 参数列表: 运算表达式
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print("Value of total : %d" % sum( 10, 20 ))
print("Value of total : %d" % sum( 20, 20 ))
#应用场合
#函数作为参数传递
>>> def fun(a, b, opt):
... print("a = " % a)
... print("b = " % b)
... print("result =" % opt(a, b))
...
>>> add = lambda x,y:x+y
>>> fun(1, 2, add) # 把 add 作为实参传递,注意 add 后没有小括号
a = 1
b = 2
result = 3
1.3 列表推导式
使用列表结合for循环快速创建一个新的列表,列表推导式返回的是一个列表类型
语法:[把每一个value数据添加再列表里面 for value in 容器类型的数据]
#需求:快速创建一个列表,并且列表里面有1-5的数据
new_list = [value for value in range(1,6)]
print(new_list,type(new_list))
#需求:快速创建一个列表,且列表里面有1-5的数据偶数
new_list = [value for value in range(1,6)if value % 2 == 0]
print(new_list,type(new_list))
#需求:["aa","bb","cc"]
my_str = "abc"
new_list = [value*2 for value in my_str]
print(new_list,type(new_list))