温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python的函数形参和返回值是什么

发布时间:2022-03-16 10:24:51 来源:亿速云 阅读:166 作者:iii 栏目:开发技术

这篇文章主要介绍了python的函数形参和返回值是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python的函数形参和返回值是什么文章都会有所收获,下面我们一起来看看吧。

    函数的返回值

    一个函数执行后可以返回多个返回值

    def measure():
        print('测量开始。。。。')
        temp=39
        wetness=50
        print("测量结束")
        #元组--可以包含多个数据,因此可以使用元组一次返回多个值
        return (temp,wetness)
    result=measure()
    print(result)

    运行结果:

    测量开始。。。。
    测量结束
    (39, 50)

    def measure():
        print('测量开始。。。。')
        temp=39
        wetness=50
        print("测量结束")
        #元组--可以包含多个数据,因此可以使用元组一次返回多个值
        return (temp,wetness)
    #如果函数返回的类型是元组,同时希望单独的处理元组中的元素
    #可以使用多个变量,一次接收函数的返回结果
    #使用多个变量接收结果时,变量的个数应该和元组的元素个数一致
    gl_temp,gl_wetness=measure()
    print(gl_temp)
    print(gl_wetness)

    运行结果:

    测量开始。。。。
    测量结束
    (39, 50)

    交换两个变量的值

    a=6
    b=100
    #使用其他变量
    c=a
    a=b
    b=c
    #不使用其他变量
    a=a+b
    b=a-b
    a=a-b
    #python专有
    a,b=b,a
    print("a的值为 %d"%a)
    print("b的值为 %d"%b)

    函数的参数

    不可变参数和可变参数

    在函数内部,针对参数使用赋值语句,不会改变调用函数时传递的实参的值
    无论传递的参数是可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用

    def demo(num,num_list):
        print("函数内部")
        #在函数内部,针对参数使用赋值语句,形参的引用发生了变化,但是实参的引用没变
        num=200
        num_list=[1,2,3]
        print(num)
        print(num_list)
        print("函数内部代码完成")
    gl_num=99
    gl_list=[2,3,4]
    demo(gl_num,gl_list)
    print(gl_num)
    print(gl_list)

    运行结果:

    函数内部
    200
    [1, 2, 3]
    函数内部代码完成
    99
    [2, 3, 4]

    如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同样会影响到外部的数据

    def demo(num_list):
        print("函数内部")
        num_list.append([1,2,3])
        print(num_list)
        print("函数内部代码完成")
    
    gl_list=[2,3,4]
    demo(gl_list)
    print(gl_list)

    运行结果:

    函数内部
    [2, 3, 4, [1, 2, 3]]
    函数内部代码完成
    [2, 3, 4, [1, 2, 3]]

    +=

    在python中,列表变量调用+=本质上在执行列表变量的extend方法,不会修改变量的引用

    def demo(num,num_lst):
        print("函数开始")
        num+=num
        num_lst+=num_lst
        print(num)
        print(num_lst)
        print("函数结束")
    gl_num=9
    gl_list=[1,2,3]
    demo(gl_num,gl_list)
    print(gl_num)
    print(gl_list)

    运行结果:

    函数开始
    18
    [1, 2, 3, 1, 2, 3]
    函数结束
    9
    [1, 2, 3, 1, 2, 3]

    函数的参数

    缺省参数

    定义函数时,可以给某个参数指定一个默认值,具有默认值的参数就叫做缺省参数

    调用函数时,如果没有传入缺省参数的值,则在函数内部使用定义函数时指定的参数默认值

    (1)指定函数的缺省参数

    在参数后使用赋值语句,可以指定参数的缺省值

    def print_info(name,gender=True):
        gender_text="男生"
        if not gender:
            gender_text="女生"
        print("%s 是 %s"%(name,gender_text))

    (2) 提示

    缺省参数,需要使用最常见的值作为默认值

    如果一个参数的值不能确定,则不应该设置默认值,具体的数据在调用函数时,由外界传递

    (3) 缺省参数的注意事项

    1.缺省参数的定义位置

    必须保证带有默认值的缺省参数在参数列表的末尾

    2.调用多个缺省参数的函数

    在调用函数时,如果有多个缺省参数,需要指定参数名,这样解释器才能够知道参数的对应关系

    多值参数

    有时候可能需要一个函数能够处理的参数个数是不确定的,这个时候,就可以使用多值参数

    • python中有两种多值参数:

    参数名前增加一个* ,可以接收元组

    参数名前增加两个*,可以接受字典

    • 一般在给多值参数命名时,习惯使用以下两个名字:

    *args----存放元组参数

    **kwargs—存放字典参数

    def demo(*args,**kwargs):
        print(args)
        print(kwargs)
    demo(1,2,3,4,name="test1",age=14)

    运行结果:

    (1, 2, 3, 4)
    {'name': 'test1', 'age': 14}

    可以看到1,2,3,4被组成了一个元组
    name=“test1”,age=14,被组成了一个字典

    #计算任意个数之和
    def sum_args(*args):
        sum=0
        for n in args:
            sum+=n
        return sum
    result=sum_args(1,2,3,4,6)
    print(result)

    元组和字典的拆包

    在调用带有多值参数的函数时,如果希望:

    将一个元组变量,直接传递给args

    将一个字典变量,直接传递给kwargs

    就可以使用拆包,简化参数的传递,拆包的方式是:

    在元组变量前,增加一个*

    在字典变量前,增加两个**

    #如果不拆包,将gl_args,gl_kwargs组成一个元组
    def demo(*args,**kwargs):
        print(args)
        print(kwargs)
    
    gl_args=(1,2,3,4)
    gl_kwargs={"name":"test1","age":12}
    demo(gl_args,gl_kwargs)

    运行结果:

    ((1, 2, 3, 4), {'name': 'test1', 'age': 12})
    {}

    如果不拆包,将gl_args,gl_kwargs组成一个元组,正确的传递方式应该是:demo(1,2,3,4,name=“test”,“age”=12)

    但是实参是元组和字典,需要将元素一个一个拆开,所以需要使用拆包

    正确的使用方式:

    def demo(*args,**kwargs):
        print(args)
        print(kwargs)
    gl_args=(1,2,3,4)
    gl_kwargs={"name":"test1","age":12}
    demo(*gl_args,**gl_kwargs)

    运行结果:

    (1, 2, 3, 4)
    {'name': 'test1', 'age': 12}

    关于“python的函数形参和返回值是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“python的函数形参和返回值是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI