函数参数

函数

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。特性:1.减少重复代码2.使程序变的可扩展3.使程序变得易维护

函数参数

实参

可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先给实参赋值
形参:只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

默认参数

形参指定默认值

关键参数

正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可(指定了参数名的参数就叫关键参数),但记住一个要求就是,关键参数必须放在位置参数(以位置顺序确定对应关系的参数)之后

#这里的参数name,age,sex,hobbies都是形参
#其中hobbies是默认参数
def print_info(name,age,sex,hobbies='篮球'):
    print('-------info-------')
    print('Name:',name)
    print('Age:',age)
    print('Sex:',sex)
    print('Hobbies:',hobbies)
#这里的参数都是实参
print_info('gjp',23,'M','swimming')
print_info('jack',22,'F')
#下面的age,sex都是关键参数
print_info('benbi',age=22,sex='F',hobbies='bingbang')

非固定参数

函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数。其中形参处可用*args,**kwargs来接受实参传入的值,其中args把接受的参数以元组的形式传出,kwargs将接受的参数以字典的形式传出

def print_info(name,age,*args,**kwargs):
    print('-------info-------')
    print('Name:',name)
    print('Age:',age)
    print(args,kwargs)
print_info('gjp',23,'M',hobby='swimming')

#执行结果
# -------info-------
# Name: gjp
# Age: 23
# ('M',) {'hobby': 'swimming'}

全局变量与局部变量

在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。

全局变量作用域(即有效范围)是整个程序,局部变量作用域是定义该变量的函数。

name = "孙悟空"
def change_name():
    global name #声明一个全局变量
    name = "孙悟空,又叫美猴王"
    print("after change", name)
change_name()
print("在外面看看name改了么?", name)
#执行结果
# after change 孙悟空,又叫美猴王
# 在外面看看name改了么? 孙悟空,又叫美猴王

其中当传入的参数为列表或者字典的时候,不用申明就可以通过函数修改字典列表的元素
程序只是把字典,列表的内存地址传给了函数,把dict比作鱼缸,里面的元素比作缸里装的鱼。现在只是把鱼缸丢给了函数,这个鱼缸本身你不能改,但是里面的鱼可以。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值