python中day_day09-python中的函数

01-匿名函数

1、匿名函数:

声明格式:

函数名 = lambda 参数列表:返回值

说明:

函数名:变量名

lambda:声明匿名函数的关键字

参数列表:参数名1,参数名2,

冒号:固定写法

返回值:表达式,表达式的值就是返回值。

2、匿名函数调用

匿名函数的调用和普通函数一样

格式:函数名(实参列表)

3、补充:python中的普通函数可以有多个返回值,就是在return后返回多个值,多个值之间用逗号隔开;最终以元祖的形式返回;

02-变量的作用域

1、变量的调用过程是一个压栈的过程;

每次调用一个函数,系统就会在内存区域的栈区间去开辟空间,保存函数调用过程中产生的数据;

当函数调用完成后,对应的栈区间会自动销毁;

2、作用域:指的就是一个变量能够使用的范围

3、全局变量和局部变量

a、全局变量:声明在函数和类的外面的变量都是全局变量。

全局变量的作用域:从声明开始到文件结束;

b、局部变量:声明在函数中或者类中的变量就是局部变量

局部变量的作用域:从声明开始到函数结束,或者从声明开始到类结束;

注意:函数的参数是声明在函数中的局部变量;

4、变量同名的问题:

如果全局变量和局部变量同名,那局部变量的作用域内使用的是局部变量的值

global关键字:是在函数中声明一个全局变量

global 变量名

变量名 = 值

例子:

num2 = 10

def fun4():

# 在局部作用域内修改全局变量;

global num2 # 说明从这句开始后面的num2是全局变量;

num2 = 199

print(num2)

fun4()

print(num2)

nonlocal关键字:是在函数中声明一个外层局部的中的局部变量;

nonlocal 变量名

变量名 = 值

def fun5():

nn = 10

print(nn)

# 函数中可以声明函数

def fun6():

# 相当于局部中的全局变量

nonlocal nn

nn = 20

print(nn)

fun5()

03-递归函数

1、递归函数

就是在函数的函数体中调用函数本身,这样的函数就是递归函数

2、写递归函数的步骤

步骤1:找临界值(找到让循环结束的值/找到能够确定函数结果值)

步骤2:找关系

步骤3:找f(n)和f(n-1)的关系

3、在实际开发中,递归是能不用就不要用;递归需要不断的调用函数,开辟空间,消耗内存;

04-模块和包的使用

1、模块:就是对变量、函数、类进行封装;一个py文件就是一个模块

2、使用模块的格式:

a、 import 模块

通过模块.内容的形式去使用模块中的内容(能够使用的是全局变量、函数、类)

b、from 模块 import 模块中的内容

可以直接使用模块中的内容

c.from 模块 import * --- 将模块中的所有内容都导入

3、对模块进行重命名

格式:

import 模块 as 新名字

form 模块 import 内容 as 新名字;

将不希望被别的模块导入(执行)的代码放到模块的这个if语句中;"if __name__ == '__main__':"

建议:函数的声明、类的声明一般写在if的外面,其他的写在if里面,(想要被外部使用的全局变量也写在外面)

每个模块都有一个''__name__"属性,这个属性的值默认就是当前模块的文件名

当当前模块正在被执行(直接在当前这个模块中点了run)的时候,''__name__''属性的值是"__main__"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值