初识python中的函数

1.python中的函数

def+函数名+小括号+冒号

缩进+函数体

函数名+小括号

def func():
    print(a)
func()

 2.定义和引用函数

def func(a_addr,a_age,d_addr,d_age):    #定义函数
  print(f"我在{a_addr},今年{a_age}岁")
  print(f"猪蹄在{d_addr},今年u{d_age}岁")
func("北京","18","上海","17")         #调用参数
结果:
我在北京,今年18岁
猪蹄在上海,今年17岁

3.函数的执行流程

 从定义位置开始执行,再执行同一竖直水平下的调用函数func(),之后再执行函数体,遇到return时结束函数体

4.函数的返回值return

  return 将返回值返回给调用者(函数名+括号就是调用者)

  不写return时,默认返回值是None,

  当有retrun时,没有写值是默认返回值是None

  return可以返回任何数据  多个元素返回的是元祖

  当有return时,写值后返回值是所写的值

  当函数体执行到return后会停止执行,将返回值返给调用函数(终止这个函数)

5.函数的参数

形参:

位置参数

默认参数

混合参数

实参:

位置参数

关键字参数

混合参数

参数位置:    位置参数  >  默认(关键字)参数  

传参:就是从形参到实参的过程

6.动态参数

def func(*args):           #*args进行聚合,打包
    print(args)
func('包子','油条','豆浆')
结果:
('包子', '油条', '豆浆') # *args的结果以元祖的形式出来

    *args的作用是接受所有的位置的参数 获取到的结果以元祖的形式表现出来

def func(a,s,*args):     #位置参数 > 动态位置参数
    print(a,s,args)
func('包子','油条','豆浆','猪蹄','羊蹄') 
结果:
包子 油条 ('豆浆', '猪蹄', '羊蹄')

    位置参数 > 动态位置参数         *args获取的结果以元祖的形式打印出来

def func(a,b,**kwargs):   
    print(a,b,kwargs)
func(a='猪蹄',b= '羊蹄',c='鸡腿',d='鸭腿')   #关键字位置 > 动态关键字位置
结果:
猪蹄 羊蹄 {'c': '鸡腿', 'd': '鸭腿'} #**kwargs接收的关键字参数通过字典打印出来

     关键字参数 > 动态关键字参数       **kwargs接收的关键字参数通过字典的形式打印出来

动态参数接收位置参数:
注意点:
*args接收的位置参数按照元祖的形式打印,当只有一个参数的时候必须要带个逗号(1,)
*args中的args并不是固定的 可以换成其他变量但是*是固定的
动态参数接收参数的时候,位置参数必须在动态参数前面(a,b,*args)
默认参数写在动态参数后面的时候,默认参数不会生效
动态参数接收关键字参数:
注意点:
**kwargs接收的关键字参数以字典的形式打印来
**kwargs中的kwargs并不是固定的 可以换成其他变量但是*是固定的
动态参数接收关键字参数也必须是在位置参数的后面

 

def func(a,b,*args,c= 1,d= 2,**kwargs):  #位置参数 >动态位置参数 >关键字参数>动态关键字参数
    print(a,b,args,c,d,kwargs)
func('猪蹄','羊蹄',"鸡腿",'鸭腿',c= 66,d= 77,f= 88,g= 99)
结果:
猪蹄 羊蹄 ('鸡腿', '鸭腿') 66 77 {'f': 88, 'g': 99}
 # *args 接收的位置参数以元祖的形式呈现,
 #**kwargs 接受的关键字参数以字典的形式呈现
def func(*args,**kwargs):  #万能 无敌
    print(args,kwargs)
func(1,2,3,4,a=1,b=2,c=3)  # 位置  关键字  混合
结果:
(1, 2, 3, 4) {'a': 1, 'b': 2, 'c': 3}
lst =[1,2,3,5,4]
def func(*args):  # 聚合
    print(*args)  #打散
func(*lst)  # 打散  去壳
结果:
1 2 3 5 4

 # 形参位置:

#   位置参数 > *args(动态位置参数) > 默认参数 > **kwargs

*和**在形参位置代表着聚合,在实参位置的时候代表着打散,
*在函数体重代表着打散
*kwargs在函数体中代表打散的是字典的键 **kwargs在函数体中会报错
原文地址:https://www.cnblogs.com/shicongcong0910/p/10240793.html