【python】函数定义和函数参数
1、函数引入:
1.1 定义一个函数
def 函数名():
pass
1.2 函数调用
函数名()
1.3 函数返回值
def func1():
print("约吗")
return "不约"
print("好吧")
func1()
函数返回值作用:
#函数执行到return停止执行;将返回值返回给函数调用者(函数名())
#return后多个返回值,需要用逗号隔开,接收到的返回值是元组类型;
#执行函数时,return后内容不会打印;
2、函数的参数
在函数执行的时候给函数传递的信息
1. 形参:在函数声明的位置,声明出来的变量
1) 位置参数.
2) 默认值参数:当调用的时候没传值使用默认值
#相当于实参里的关键字参数,但在形参里叫默认值参数
#默认参数一定在位置参数后面
3)动态参数:
a.位置参数的动态参数: *args
#可传入任意个位置参数,接收的是元组数据类型
b.关键字参数的动态参数 : **kwargs
#接收的是关键字参数,打印是字典类型
#形参的顺序: 位置参数,*args,默认值参数,**kwargs
2.实参:在函数调用的时候,实际给函数传递的值
1)位置参数. 按照位置给形参赋值,必须一一对应
2)关键字参数. 按照名称给形参赋值
3) 混合参数. 先用位置参数, 再用关键字参数
补充:
1、解释*args 和**kwargs:
两个是动态参数,当实参个数不确定的时候使用,*args 可接收任意个位置参数,**kwargs可接收所有的关键字参数。
2、当定义一个函数的时候,*代表聚合;
当执行一个函数的时候,*代表打散。
练习题1: print(*agrs)和print(args)的区别
def func(*xargs):
print(*xargs)
func(1,2,3) #结果:1 2 3
def func(*xargs):
print(xargs)
func(1,2,3) #结果:(1,2,3)
练习题2:func(list1,list2)和func(*list1,*list2)的区别
def func(*xargs):
print(xargs)
list1=[1,2,3]
list2=[4,5,6]
func(*list1,*list2) #结果:(1,2,3,4,5,6)
def func(*xargs):
print(xargs)
list1=[1,2,3]
list2=[4,5,6]
func(list1,list2) #结果:([1,2,3],[4,5,6])
def f1(*args):
print(*args)
list1=[1,2,3]
list2=[4,5,6]
f1(list1,list2) #结果:[1, 2, 3] [4, 5, 6]