函数的结构
def 函数名(参数):
“函数注释”
函数代码
return 返回值
介绍
def
定义函数的关键字
函数名
跟变量名一样
参数
可有可无,有参数的时候要传参才能调用没有的话就不用传参调用
函数注释
说明这个函数的作用(想要的就要)
函数体代码
是函数的核心需要程序员的编写
return
使用函数之后返回给使用者renturn后的数据后面的代码也不会执行
(可有可无)
函数的定义与调用
函数的定义
函数在定义阶段只检测语法不执行代码
def 函数名():
pass
函数的调用
函数在调用阶段才会执行函数体代码
调用方式
函数名()
注意事项
函数必须先定义后才能调用
调用的时候如果有参数需要按照括号内相应的规则传递参数
函数的分类
空函数
函数体代码为空或者使用pass补全
空函数主要用于项目前期的功能框架搭建
使用方法
def 函数名():
pass
无参函数
定义函数的时候括号内没有参数
使用方法
def 函数名():
print(‘你好’)
有参函数
定义函数的时候括号内写了参数 调用函数的时候括号里需要传参
使用方法
def 函数名(参数):
pringt(参数)
函数的返回值
返回值
调用函数之后返回给调用者的结果
变量名 赋值符号 函数调用
变量名 = 函数名()
注意先执行函数然后将返回值赋值给变量名
函数返回值的多种情况
函数体代码里面没有return关键字默认返回none
函数体代码里面有return后面没有写数据也是返回none,后面写什么就返回什么
如果return后面有多个数据值则自动组织返回元组的形式
函数体代码遇到return会立刻介绍后面的代码不会执行
函数的参数
形式参数
在函数定义阶段括号内填写的参数介绍形参
实际形参
在函数调用阶段括号内填写的参数介绍实参
形参和实参的关系
形参
形参类似于变量名在函数定义阶段可以随便写最好见名知意要传什么数据进去
使用方法
def 函数名(name,age)
pass
实参
在函数调用阶段与形参临时绑定函数运行结束后立刻断开
调用方法
函数名(‘名字’,年龄)name与名字绑定 age与年龄绑定
函数参数之位置参数
当子代码只要一行并且简单的情况下可以直接在冒号后编写不用换行
位置形参
函数定义阶段括号内从左往右依次填写的变量名
方法
def 函数名(a,b,c):pass
位置实参
函数调用阶段括号内从左往右依次填写的数据值
使用方法
函数名(数据1,数据2,数据3)
a对应数据1
b对应数据2
c对应数据3
注意事项
传值不能多也不能少,关键字传参就是
函数名(a=数据,b=数据参数)可以不用按位置
但是关键字传参一定要在位置传参后面不能在前面
函数名(b=数据,数据,数据)这样是错的
同一个形参在调用的时候不能多次赋值
实参没有固定的定义可以传数据也可以绑定数据值的变量名
默认参数
就是这个参数可以不传(就是在定义的数据)传的话就是自己传数据
使用方法
def 函数名(name,age,gender=‘male’):
print(name,age,gender)
调用方法
函数名(名字,年龄)
函数名 (名字,年龄,性别)
可变长形参
加形参用来接收多个参数组织成元组赋值给号后面的形参
加形参用来接收多余的关键字参数,接收组成字典的形式赋值给号后面的形参
一般用*args和**kwargs来使用
可变长实参
命名关键字参数(了解)
形参必须按照关键字参数传值:命名关键字参数
def 函数名(name,*args,gender=‘male’,**kwargs):
print(name,args,gender,kwargs)
调用方法
名称空间
变量名 = 数据
申请内存空间存储数据
给数据绑定变量名
后续通过变量名就可以访问数据
名称空间就是用来存储变量名与数据值绑定关系的地方
内置名称空间
解释器运行自动产生里面包含了很多变量名
比如:len,print,input
全局名称空间
在py文件中贴着边框的独立的就是全局名称的数据
name和age就是全局名称空间的数据
局部名称空间
函数体代码运行或者类体代码运行产生的空间