1.概念

由若干条语句组成的语句块,他的组织代码是代码的最小单元

完成一定的功能

2.作用

最基本的封装,按照功能组织一段代码

可以复用,减少代码量

代码简洁美观,更易懂

3.函数的分类

内建函数 max()

库函数 match.ceil()

自定义函数 使用def关键字定义

4.定义

函数名

缩进

return 没有缺省返回None

形参

5.调用

函数名加括号,后面跟实参

6.参数

6.1实参的传入方式

按照位置对应(位置传参)多了少了都不行

按照形参名称传参(关键字传参)多了少了都不行,无所谓先后顺序

不允许关键字参数在前

6.2形参的定义

参数缺省值(定义时给形参一个值)

有缺省值的参数必须在无缺省值参数后面

6.2.1可变的位置参数

*args :可变形参,接收零个或多个参数,生成一个元组(不可变),星号后面参数名可自定义

6.2.2可变的关键字形参

**kwargs: 尽可能收集,生成一个字典(可变),调用时要使用关键字传参,作为形参的最后一个参数

位置传参必须在关键字传参的前面

6.2.3 keyword-only

必须使用关键字传参

定义方式:

def fn(*,a,b):

pass

6.2.4 positional-only

python3.8语法

“/” 之前只支持位置传参

定义方式

def fn(a,/,b): a只支持位置传参

pass

参数规则

参数列表参数一般顺序是: positional-only,普通参数,缺省参数,可变位置参数,keyword-only参数(可带缺省值),可变关键字参数

代码易读易懂

按照书写规范定义函数

6.3实参传入

函数

def sun_(*args):

print(args)

s=0

for x in args:

s+=x

return s

传参方式(参数解构)

sum_(*[1.,2,3])

sum_(*range(10)

sum_(*[1,2], *(4,5), *{7,8})

#字典参数结构:

sum_(*{'a':1,'b':2}) #解构出key

sum_(**{'a':1,'b':2}) #解构出关键字传参key=value

实参的参数解构

实参前面加星号,表示将后面的可迭代对象里的元素作为位置参数传入

7.函数返回值

函数执行过程中碰到return语句就代表这个函数执行完毕

没有return的函数,默认返回None

一个函数就算有多条return ,也只会执行一个

返回值的作用:结束函数调用,返回返回值

8.函数的作用域

通常指的是变量的作用域

作用域分类

全局作用域

在整个程序运行环境中都可见

全局作用域中的变量称为全局变量global

局部作用域

在函数/类的内部可见

局部作用域中的变量称为局部变量,其使用范围不能超过其所在局部作用域

也称为本地作用域local

一般外部作用域在内部可见,内部作用域外部不可见

向内穿透,就近选择

global使用原则

外部作用域变量会在内部作用域可见,但也不要在这个内部的局部作用域中直接使用,因为函数的目的就是为了封装,尽量与外界隔离

如果函数需要使用外部全局变量,请尽量使用函数的形参定义,并在调用传实参解决

一句话:不用global,学习他就是为了深入理解作用域

闭包

概念

自由变量

未在本地作用域中定义的变量。例如定义在内层函数外的外层函数的作用域中的变量

闭包

就是一个概念,出现在嵌套函数当中,指的是内层函数引用外层函数的自由变量,就形成了闭包

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐