不定长参数
-
我们在定义函数的时候可以在形参前加入一个 * 号,这样这个形参可以获取所有的实参,并将所有的实参保存进一个元组当中
注意:- 带 * 号的形参只能有⼀个,我们可以配合其他的形参使用
- *形参只能接受位置参数,不能接受关键字参数
-
**形参可以接收其他的关键字参数,它会将这些参数统⼀保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值
-
注意: **形参只有一个,并且必须写在所有形参的后面
函数的返回值
- 返回值就是函数运算后返回的结果
- 我们可以通过return来指定函数的返回值
- return后⾯可以跟任意对象,返回值甚⾄可以是⼀个函数
函数的作用域
- 概念
- 作用域指的是变量生效的区域
- 作用域分为全局作用域和函数作用域
- 全局作用域
- 全局作用域在程序执行时创建,在程序执行结束时销毁
- 所有函数以外的区域都是全局作用域
- 在全局作用域中定义的变量,都是全局变量,全局变量可以在程序的任意置进行访问
- 函数作用域
- 函数作用域在函数调用时创建,在调用结束时销毁
- 函数每调用⼀次就会产生⼀个新的函数作用域
- 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被问。
- 全局作用域
- 函数作用可访问全局 作用域 可全局作用域看不见函数作用域
a = 100
def fn()
a = 10
print('函数内部=',a)
fn ()
print('函数外部'a)
输出:函数内部= 10
函数外部= 100
递归函数
- 递归是解决问题的⼀种方式,它的整体思想是将⼀个大问题分解为⼀个个 的小问题,直到问题无法分解时,再去解决问题。
- 递归式函数有2个条件
- 基线条件:问题可以被分解为最小问题,当满足基线条件时,递归就不执行了
- 递归条件:可以将问题继续分解的条件
课堂练习
- 定义⼀个函数,⽤来检查⼀个任意的字符串是否是回⽂字符串,如果是返 回True,不是返回False。回⽂字符串从前往后念和从后往前念是⼀样的。 例如 TNT