函数
一、函数的定义
def <函数名> (形参列表) :
<执行语句>
return <返回值>
def celc(a,b):
c=a+b
return c
---单语句函数---
def celc(a,b): return a+b
---占位函数---
def emptfunc:
pass
二、函数的参数的传递
1.位置实参和关键字实参
rec1=celc(10.20) #位置实参 :根据形参对应的位置进行实参传递
rec2=celc(b=20,a=10) #关键字实参:根据形参名称进行实参传递
# rec1与rec2的值相等
2.元组类型和字典类型可变长参数传递
---个数可变的位置形参,加一个*号---
#arg为元组类型,且只能有一个 个数可变的位置形参
def fun1(*arg):
print(arg[0])
fun1(1,2,3) # 返回1
---个数可变的关键字形参,加两个*号---
#arg为字典类型,且也只能有一个 个数可变的关键字形参
def fun2(**arg):
print(arg)
fun2(x=1) # {'x':1}
fun2(x=1,y=2) # {'x':1,'y':2}
3.各类形参的位置关系
---顺序:普通形参 > 个数可变的位置形参 > 个数可变的关键字形参 之前---
def fun3(d,*arg1,**arg2):
pass
4.列表和字典的每个元素转化为形参
def fun4(a,b,c):
print(a,b,c)
lst1=[1,2,3]
dic1={'a':1,'n':2,'c':3}
fun4(*lst1) # 将列表中的每个键值对都转换为位置实参(1,2,3)
fun4(**dic1) # 将字典中的每个键值对都转换为关键字实参,返回(1,2,3)
5.参数总结
三、高阶函数
定义:允许将函数对象的名称作为参数传入的函数
def add(x,y): return x+y
def subtract(x,y): return x-y
def myfunc(x,y,f): return f(x,y) # 形参f的类型为函数对象
a,b=5,2
method=add #注意,add不加引号
print('参数1为%d,参数2为%d,结果为%d'%(a,b,myfunc(a,b,method)))
#返回:参数1为5,参数2为2,结果为7
四、函数的返回值
- 没有返回值,return可以不写
- 函数的返回值,如果是1个,直接返回类型
- 函数的返回值,如果是多个,返回一个元组
五、变量的作用域
del fun():
global arg #设置全局变量arg