软件测试

python基础知识(三)---函数语法规则

2020-06-08  本文已影响0人  小高有点

Python 函数语法规则

1.定义函数

函数的返回,在函数体中 有return语句,return后可以跟多个值用逗号隔开即可

def add (a,b):                  # 参数名  是函数中的局部变量
    return a+b, str(a)+str(b)   # 返回多个数据时返回数据类为元组
函数调用

调用: 直接写函数名称 和传递参数

v=add(100,200)
print(v,type(v)) 
a=10
def f2():
    print('函数执行')
    #函数没有写 返回值时  默认返回 None

print( f2() )  # 打印f2()  函数执行后的返回值 为None

2.Python 函数 参数的各种形式

1.参数的“多态性”  ---- 参数变量 可以代表任何数据类型
    def add(a,b):
        return a+b
    print( add(1,2) )
    print( add("hello","world") )

2. 函数对参数的 处理  分可变数据 和不可变数据 两种情况
    a=10    #  a变量所引用的 值10  所占的内存空间  不可在改变 其中的数据,  int,float,bool,Str 等都是不可变数据
    def f2(p1):    
        p1=p1+1
        return p1
    
    print(f2(a)) # 当传递到函数中的数据 是不可变数据时,函数中对该数据的更改,不会影响传递进来之前的数据
    print(a)     # a 仍然保持为 原来的10
    # 以上的输出 分别是 11 和10
    
    l1=[1,2]         #  l1 所引用的值 所占的空间 是可改变的,list  set dict 这些数据类型 的存储空间是 可改变的
    def f3(p1):
        p1.append(3) # 当传递进来的数据 可变时,函数中对数据做的更改,会对传递进来之前的值 产生影响
        return p1
    print( f3(l1))
    print(l1 )
    # 以上两行输出的 值是一样的 改变后的。 l1被函数所改变
    
    l2=[3,4,5]
    l3=l2
    l3.append(6)
    print(l2,l3,id(l2),id(l3))   # 表示 l2 l3 都引用同一个 列表

3.函数定义时和调用时  参数列表中 有等号的情况
    1.定义函数时 参数带等号 表示给参数设定默认值
        def f1(a,b=10):
            print(a,b)

        调用函数f1
        f1(10)      # 只给参数 a 传递值10, b参数采用默认值 10
        f1(10,20)   # 给a传递10,  b传递20

        以上两行分别输出10 10; 10 20

    2.调用函数时 参数带等号,表示 指定给某一个参数传递值
        f1(a=123,b=456)
        f1(b=123,a=456)  #指定给参数传递值  可以不按照 定义函数时  参数的顺序传递
        以上两行输出123 456; 456 123

    注意:
    f1(b=123, 456)  #  调用函数时 如果通过指定参数名传递, 则从第一个指定名称传递开始  后面的参数都必须通过指定名称传递
    以上写法 会报语法错误!! 
         f1(b=123, 456)
                 ^
    SyntaxError: positional argument follows keyword argument

3. 函数的参数定义时 和调用时 有星号的情况

1. 定义函数时  参数有星号的情况
    def f2(*p1):             # 星号参数表示在调用该函数时可以传递任意多个参数
        print(p1, type(p1))  # 在函数中用一个参数名字统一表示多个数据,以元组形式存在

    f2(1,2,3,4,5)  # 可以传递任意多个参数 进去

2.调用函数时  参数带星号的情况
    def f3(a,b,c,d,e,f):
        print(a,b,c,d,e,f)   
    
    t1=(1,2,3,4,5,6)
    f3(*t1)     # 调用函数f3时,可以用一个变量名将多个数据分别传递给各个参数, 按照变量中的元素顺序传递给各个参数
    
3.定义时参数有2个星号的情况 表示收集任意多 对 键值对,在函数中该参数类型是 “字典”
    def add_info(**i):
        print(i,type(i))

    add_info(name="张", tel='12345678',email='abc@abc.com')
上一篇 下一篇

猜你喜欢

热点阅读