函数

1. 匿名函数

1.1 简介

1. 定义

  • 匿名函数是简单普通函数的简洁写法
  • 定义的函数没有名字,这样的函数叫做匿名函数

2. 语法结构

lambda [形参1], [形参2], ... : [单行表达式] 或 [函数调用]

1.2 应用


# 无参有返回值匿名函数
# a) 匿名函数整体就是函数名字, 函数名字()就是函数调用
ret = (lambda: 1 + 1)()
print(ret)
# b) 给匿名函数起一个函数名字,函数名字()就是调用函数
func = lambda: 1 + 1  # 给匿名函数起一个函数名字叫func
ret = func()  # 返回值变量 = 函数名()
print(ret)

print('=' * 30)

# 有参有返回值匿名函数
# a. 直接调用匿名函数
ret = (lambda a, b: a - b)(30, 10)
print(ret)

# b. 先给匿名函数起名,再调用
func = lambda a, b: a - b
ret = func(30, 10)
print(ret)

1.3 注意

  • 匿名函数中不能使用 while 循环、for 循环,只能编写单行的表达式,或函数调用

  • 匿名函数中返回结果不需要使用 return,表达式的运行结果就是返回结果

  • 匿名函数中也可以不返回结果。

lambda : print('hello world')
# 给匿名函数起一个函数名字,函数名字()就是调用函数
func = lambda: 1 + 1  # 给匿名函数起一个函数名字叫func
ret = func()  # 返回值变量 = 函数名()
print(ret)

2. 递归函数

2.1 简介

1. 定义

  • 如果 一个函数在内部调用其本身,这个函数就是 递归函数

2. 特点

  • 递归函数一般会在特定情况下不再调用函数本身(一定要有出口),否则会导致到达最大递归次数, 程序报错

2.2 应用

需求:通过递归函数实现阶乘
分析:
阶乘的规律:

1! = 1  
2! = 2 × 1 = 2 × 1!  
3! = 3 × 2 × 1 = 3 × 2!  
4! = 4 × 3 × 2 × 1 = 4 × 3!  
...  
n! = n × (n-1)!

实现:

# 1. 定义函数(参数)
def func(n):
    # 2. 如果我是 1 ,直接返回 1
    if n == 1:
        return 1
    # 3. 否则,返回 n * 函数调用自己(n-1)
    else:
        ret = n * func(n-1)
        return ret


# 函数调用
_ret = func(3)
print(_ret)

2.3 调用流程

递归函数调用流程

3. enumerate、del

3.1 简介

  • 通过 for 配合 enumerate 遍历容器同时获取元素索引位置、元素
  • 省略了索引+1操作
    enumerate

3.2 使用

for i, value in enumerate(容器):

3.2 应用


user_list = [{'name': 'mike', 'age': 34, 'tel': '110'},
             {'name': 'yoyo', 'age': 18, 'tel': '120'}]

# 遍历列表,同时把索引位置能打印
# 普通方法实现
# 1. 定义索引位置变量
i = 0
# 2. for遍历列表,打印:索引、元素
for user_dict in user_list:
    print(i, user_dict)
    # 3. 索引位置+1
    i += 1

print('=='*20)

# 通过enumerate方法实现
# enumerate(容器变量):获取到:元素位置,元素
for i, user_dict in enumerate(user_list):
    print(i, user_dict)

运行结果:

0 {'name': 'mike', 'age': 34, 'tel': '110'}
1 {'name': 'yoyo', 'age': 18, 'tel': '120'}
========================================
0 {'name': 'mike', 'age': 34, 'tel': '110'}
1 {'name': 'yoyo', 'age': 18, 'tel': '120'}

在这里插入图片描述

3.3 通过del删除列表元素

1. 简介

  • 通过del删除列表元素:del 列表[索引]

3.4 应用

user_list = [{'name': 'mike', 'age': 34, 'tel': '110'},
             {'name': 'yoyo', 'age': 18, 'tel': '120'}]

# 通过del删除列表元素 del 列表[索引位置]
print(user_list)    # [{'name': 'mike', 'age': 34, 'tel': '110'}, {'name': 'yoyo', 'age': 18, 'tel': '120'}]

# 删除索引位置为0的元素
del user_list[0]

print(user_list) # [{'name': 'yoyo', 'age': 18, 'tel': '120'}]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值