一、函数初级
函数是一系列代码的集合,用来完成某项特定的功能
优点
1. 避免代码的冗余
2. 让程序代码结构更加清晰
3. 让代码具有复用性,便于维护
函数四部分
1. 函数名:使用该函数的依据
2. 函数体:完成功能的代码块
3. 返回值:功能完成的反馈结果
4. 参数:完成功能需要的条件信息
函数的定义与调用的完整语法
1、定义
def 是声明函数的关键字,后面跟着函数名,括号内是函数的参数
def 函数名(参数1,参数2,参数3,...):
'''注释'''
函数体 # 函数体写具体的逻辑代码
return 返回的值 # retrun后面是函数的返回值,是函数体代码的运行成果
2、调用
函数名(参数1,参数2,参数3,...)
3、注意
-- 先定义再调用
-- 函数名存放的是函数地址
-- ()会触发函数体的执行
-- 函数执行完毕得到的是函数的返回结果,通常称之为函数的返回值,也称函数值
函数的参数
实参:外界调用函数传入的参数,拥有实际值
位置实参:按位置对应传递参数,必须出现在关键字实参之前
关键字实参:不需要按位置对应传参,用参数名标注为谁传参,必须出现在位置实参之后
形参:函数定义时,()中定义用来接受实参的值
参数特性:
1. 形参是对实参的值拷贝
2. 先位置实参后关键字实参传参
3. 位置实参:只能给位置形参传参(位置形参|默认形参|可变长位置形参)
关键字实参:可以给任意形参传参
4. 出现顺序:位置形参 > 默认形参 > 可变长位置形参 > 关键字形参 > 可变长关键字形参
def fn1(a, b, c=10, *args, d, e=20, f, **kwargs):
pass
示例:
ls=[1,2,3,4,5] num=10 def fn(arg,n): arg[2]=300 print('1×',arg[2]) print('2*',id(n)) n=100 print('3',n) print('4',id(n)) fn(ls,num) print('5×',ls[2]) print('6*',id(num)) # 1× 300 # 2* 1709010688 # 3 100 # 4 709013568 # 5× 300 # 6* 1709010688
二、函数详解
1)根据函数体划分
空函数:用来罗列功能
函数体用pass占位,pass代表什么也不做
def func(): pass func():
非空函数:正常可以完成某项功能
def func(): print('非空函数') func(): #调用后执行函数体
2)根据参数列表划分
无参函数:不需外界资源
def start(): print('系统启动')
有参函数:需要外键资源
def login(usr, pwd): if usr == 'owen' and pwd == '123': print('登录通过') else: print('登录失败')
3)根据返回值划分:return是用来结束函数的
空返回:没有return、空return
#------------------------1-------------------------- def demo(x, y): print( x + y ) #------------------------2-------------------------- def demo(x, y): print( x + y ) return
一值返回
def demo(x, y): return x + y
多值返回 :装有多个值的元组
def demo(x, y): return x + y, x - y, x * y, x / y