函数的递归,lambd表达式以及全局变量的问题

一.递归

1.什么是递归

递归就是函数自己调用自己。它把大问题拆成一个个小问题,直到小到能直接解决。比如算阶乘,n 的阶乘是 n 乘以(n-1)的阶乘,当 n 是 0 或 1 时,阶乘就是 1。用递归函数写出来很直接:

递归得有两个部分:

  • 基线条件:让函数停止调用自己的条件,像阶乘里 n=0 或 1。
  • 递归条件:函数调用自己解决更小的问题,比如 n 乘以(n-1)的阶乘。

2.递归怎么工作

 递推:函数不断调用自己,把问题变小,直到碰到基线条件。

 回归:从基线条件开始,一步步返回结果,最后得到大问题的答案.

3.递归的优点与缺点

优点

  • 简洁:代码短,像算斐波那契数列,递归写法很直观。
  • 好懂:符合人的思维,处理树这种结构时尤其明显。

缺点

  • 耗内存:递归深了容易栈溢出。
  • 可能慢:有重复计算,比如简单递归算斐波那契数列就很慢。

4.注意事项

终止条件(基线条件)和对应的边界值正是确保递归能正常工作的关键

二.lambd表达式

1.语法

变量 = lambda 函数参数:表达式(函数代码 + return返回值)

变量()

2.基本用法

(1)简单用法

(2)作为高阶函数的参数

在 sorted()map()filter() 等接收函数作为参数的高阶函数中,lambda 可简化参数传递

sorted():指定排列依据

map():对序列元素批量处理

filter():筛选符合条件的元素

(3)不定长参数*args:

(4)不定长参数**kwargs:

(5)带if判断(三目运算符)的lambda表达式:

3.注意事项

lambda 仅能包含单个表达式,无法写多行代码、循环或复杂条件(如需复杂逻辑,应定义普通函数)

三.全局变量

1.什么是全局变量

全局变量指的是在函数外部定义的变量,它的作用域(可访问范围)是整个模块(即当前脚本文件),函数内部可以读取全局变量的值,但修改时需要特殊声明

2.基本使用

3.函数内部修改全局变量

如果要在函数内部修改全局变量的值,需要用 global 关键字声明该变量是全局的,否则 Python 会把它当作一个新的局部变量:

4.全局变量与局部变量的冲突

当函数内部定义了与全局变量同名的局部变量时,局部变量会覆盖全局变量(在函数内部优先使用局部变量):

5.global关键字

(1)有什么用

global 关键字在 Python 中用于在函数内部声明变量为全局变量,从而允许在函数内部修改函数外部定义的变量。它的核心作用是打破函数的局部作用域限制,明确指定操作的是全局变量而非局部变量

(2)基本用法

(3)总结

global 关键字的核心功能是允许函数内部修改全局变量,使用时需明确区分全局变量和局部变量,避免不必要的命名冲突和逻辑混乱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值