9
0
0

05-lambda表达式、递归与异常处理

2026-06-10
2026-06-13

函数的lambda表达式+递归和异常处理

思维导图

day07.png

lambda表达式

变量表达式(匿名函数)
fn = lambda x,y : x+y  #默认带return效果
res = fn(1,2)
函数式声明(命名函数)
def fn(x,y):
    return x+y

递归

定义:函数内部调用自身
#死递归:无限重复
def fn():
    fn()
#递归
#要素1:将复杂的内容拆成多个相同的事
def fn():
    if count<10:#出口-要素2:有一个终止递归的条件
        fn()
    return xxx  #要素3:递归可以有返回值表示递归的结果,返回到上层

#1.1-10的累加和 -> 10 + 1~9的累加和  -> 9+1 ~ 8的累加和
def get_sum(n):
    if n==1:
        return 1
    return n + get_sum(n-1)
sum = get_sum(10)
#2.1-10的乘积
def get_sum(n):
    if n==1:
        return 1
    return n * get_sum(n-1)
sum = get_sum(10)
#3.斐波那契数列
def get_fbnq(n):
    if n==1:
        return 1
    if n==2:
        return 2
    return get_fbnq(n-1) + get_fbnq(n-2)

#【拓展】求字典的键有多少个
 d1 = {
     1: 0,
     2: 0,
     3: 0,
     4: {
         5: 0,
         6: {
             7: 0
         }
     }
 }
 def get_key_num(d):
	total = 0
    total += len(d)
    for i in d:
        #i就是字典的键
        #d[i]就是字典的值
        if type(d[i]) is dict:
            total += get_key_num(d[i])
    return total

#【拓展】求一个部门有多少人
department = {
    '黑马程序员': {
        '西安校区': 3,
        '北京校区': 11,
    },
    '博学谷': {
        '狂野大模型': 3
    },
    '传智大学': 1
}
def get_person_num(d):
	total = 0
    for i in d:
        #i就是字典的键
        #d[i]就是字典的值
        if type(d[i]) is int:
            total += d[i]
        else:
            total += get_person_num(d[i])
    return total

异常处理

如果代码会报错,你怎么样让你的代码可以继续运行下去

核心:防止代码报错影响后续代码的执行

try:
    尝试执行的代码
except Exception as e:
    报错了,e
else:
    没有报错
finally:
    不论有没有报错

文件读写

教你怎么读取文件的内容

教你怎么给文件里面写内容

打开文件
f1 = open(
	file = 'xxx.xx',
    mode = 'rwa',
    encoding = 'utf-8'
)
打开的文件:绝对路径(通过盘符查找,不推荐) + 相对路径(../ 返回上一级,/目录 进入下一级)
打开的模式: r只读,光标在起始位置,不能创建文件  w写入,光标在起始位置,可以创建文件(会覆盖)  a追加,光标是在结束位置
    		b 二进制模式(图片,视频...)     +扩展模式    eg:r+读写  w+读写  wb+二进制读写
打开的编码:utf-8万国码   gbk中文编码

read()  读整个文件
read(10)  读文件10个字符
readline()  一行一行的读   ->  一行行的读文件 for i in f.lines()  f.readline()
write()  写入内容
close()  关闭文件

with会在操作完成后自动关闭文件
with open(file = 'xxx.xx', mode = 'rwa', encoding = 'utf-8')  as f:
    f.write()
    

OS模块

内置的文件和文件夹操作包

创建文件夹:          os.mkdir()
删除文件夹:          os.rmdir()
删除文件:            os.remove()
查看文件夹下的内容:    os.listdir()
读取环境变量:         os.getenv()

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!