zoukankan      html  css  js  c++  java
  • python学习笔记-函数与可变长参数

    一、函数

    1、

    def test(x):
    y=x+1
    return y
    print(test) #这是打印函数在内存中的地址

    过程:就是没有返回值的函数

    在python中过程也是函数,就算没哟返回值,也会返回个None

    def test(x):
        msg="hello"
        print(msg,x)
        return 1,2,3,'a',["steven","bob"],None
    
    t=test("jobs")
    print(t)  #打印返回的值,是一个元组:(1, 2, 3, 'a', ['steven', 'bob'], None)

    总结:返回值个数=0,返回None

    返回值=1,返回object

    返回值>1,返回tuple

    二、可变长参数

    1、形参变量只有在被调用时才分配内存单元,调用结束后释放所分配的内存单元,因此。形参只有在函数内部有效

    2、实参可以是常量,变量,表达式,函数等。无论是何种类型的量,在进行函数调用的时候,他们必须有确定的值。

    def add(x,y,z):
        res=x+y+z 
        print(res) 
    
    add(a,b,c)
    

     x,y,z是形参,a,b,c是实参

    3、位置参数和关键字参数

    位置参数必须一一对应,缺一行不行多一行也不行

    add(1,2,3)

    关键字参数必须一一对应,缺一行不行多一行也不行

    add(y=3,x=2,z=8)

    如果混合的方式,关键字参数必须在位置参数的右侧

    add(1,y=3,4)  #报错
    add(1,3,y=4)  #报错
    add(1,3,z=4)
    add(1,3,z=4,y=3)  #报错
    add(1,z=2,y=9)
    

    4、默认参数

    def add(x,y,z=5):
        res=x+y+z
        print(res)
    

    5、参数组:**字典,*列表

    I、*列表

    def test(x,*args):
        print(x)
        print(args)
        print(args[2])
    
    test(3,4,5,6,7,8,9) # 相当于把后面的多个实参当成一个元组传给形参

    结果:

    def test(x,*args):
        #print(x)
        print(args)
    
    test(3,[4,5,6,7])    #结果为:([4, 5, 6, 7],)
    test(3,*[4,5,6,7])   #结果为:(4, 5, 6, 7),和test(3,4,5,6,7)一样
    test(3) #结果为()

    II、**字典

    def test(x,**kwargs):
        #print(x)
        print(kwargs)
    
    test(1,a=3,b=4,c=5)
    test(1,a=3,b=4,c=5,c=5) #报错,一个参数不能传两个值

    III、混合的用法

    def test(x,*args,**kwargs):
        #print(x)
        print(args)
        print(kwargs)
    
    test(1,10,11,12,13,a=30,b=40,c=50)
    test(1,*[10,11,12,13],**{"a":30,"b":40,"c":50})  #写法2

    结果:

  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    白盒,单元测试
    向数据库添加100W 条数据 性能测试
    软件测试
    软件需求工程-产品经理该如何更好地记录反馈、捕捉需求?
    Spring,Spring MVC,MyBatis,Hibernate总结
    Java基础总结
    Java8新特性_四大内置核心函数式接口
    Lambda表达式及相关练习
    Java 8新特性(Lambda,Stream API)
  • 原文地址:https://www.cnblogs.com/steven223-z/p/12172911.html
Copyright © 2011-2022 走看看