• python函数定义,函数参数


    函数定义

    def 函数名(参数列表):

      函数体(代码块)

    函数名就是标识符。

    语句块必须缩进,约定4个空格。

    python的函数没有return语句,隐式会返回一个None值。

    定义中的参数列表称为形式参数,只是一种符号表达,简称形参。

    调用

      函数定义,只是声明了一个函数,它不会被执行,需要调用。

      调用的方式,就是函数名加上小括号,括号内写上参数。

      调用时写的参数是实际参数。简称实参。

     函数参数

      可变参数

      位置参数  def f(x,y,z)  调用使用f(1,3,5);按照参数定义顺序传入实参。

      关键字参数  def f(x,y,z) 调用使用f(y=1,x=3,z=5);

      传参f((1,),z=3,y=5);f(x=None,z=3,y=5);

      位置参数必须在关键字参数之前传入

    def add(x,y):
        r=x+y
        return r
    print(add(3,4))  

    函数参数默认值

      定义时,在形参后跟上一个值

    def add(x=5,y=4):
        r=x+y
        return r
    print(add())
    

     

    def add(x=5,y=4):
        r=x+y
        return r
    print(add(6,6))
    

     

    def add(x=5,y=4):
        r=x+y
        return r
    print(add(6))
    
    def add(x,y=4):
        r=x+y
        return r
    print(add(7))
    print(add(x=2)) 

    可变参数

      一个形参可以匹配任意个参数 *;可变位置参数;

    def add(*a):
    sum=0
    print(type(a)) #tuple
    for x in a:
    sum+=x
    print(sum)
    add(1)
    add()
    add(1,2,3)

    关键字参数的可变参数 **;可变关键字参数

    def ss(**a):
    print(type(a))#dict
    for x,y in a.items():
    print('{}={}'.format(x,y))
    ss(z=3,m=4)

      

    #非可变参数;  

    def add(a):#传入一个参数,该参数是可迭代对象
        sum=0
        for x in a:
            sum+=x
        return sum
    print(add([1,3,5]))
    print(add((1,2,4)))
    

     

    def add(a):
        sum=0
        print(type(a))
        for x in a:
            sum+=x
        print(sum)
    add([1,2,3])#调用#list
    add((1,2,3))#调用#tuple
    

    混合使用参数;

    def xixi(a,*b,**c):
        print(a)
        print(b)
        for x,y in c.items():
            print("{},{}".format(x,y))
    xixi("ab")
    xixi("ab","mn","xx",i=3,u=3)
    #xixi("ab","mn","xx",i=3,u=3,i=4) #SyntaxError: keyword argument repeated
    xixi(a=3,b=3)
    #xixi(3,b=3,a=5)#xixi() got multiple values for argument 'a'
    def ff(*a,x,y,**m):
        print(a)
        print(x,y)
        for xx,yy in m.items():
            print(xx,yy)
    ff(77,88,x=3,y=5,)
    ff(x=3,y=5,)
    ff(x=3,y=5,m=4) 

    keyword-only参数

       如果在一个*参数后,或者一个位置可变参数后,出现的普通参数,实际上已经不是位置参数了,而是keyword-only参数;

    def ff(*a,x):

    def ff(**a,x):#无效语法;keyword-only属于keyword;

    def fn(*,x,y):#x,y是keyword-only参数
        print(x,y)
    fn(x=3,y=4)
    #fn(3,x=3,y=4)#报错
    
    def fn(a,*,x,y):#x,y是keyword-only参数
        print(x,y)
    fn(3,x=1,y=4)
    
    def fn(*a,x=3):
        print(a)
        print(x)
    fn(4)
    fn()
    fn(1,2,3,x=7)
    

     参数规则:一般顺序是普通参数、缺省参数、可变位置参数、keyword-only参数(可带缺省值)、可变关键字参数;

    def fn(y,*a,x=3):
        print(y,a,x)
    #fn()#报错
    fn(5)
    #fn(x=6)#报错
    #fn(1,x=4,4,5)#SyntaxError: positional argument follows keyword argument
    fn(1,3,2,x=7)
    #fn(1,3,y=2,x=7)#got multiple values for argument 'y'
    #fn(1,3,z=2,x=7)#got an unexpected keyword argument 'z'
    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    html让表格边框样式为细线
    详解OpenGL中各种绘制集合图形函数
    php利用empty函数判断mysql表单是否为空
    详解OpenGL中各种绘制集合图形函数实现代码:
    约瑟夫环C语言实现源代码
    Delphi 2005 以上版本GIF动画播放设置
    INNO SETUP注册DLL文件
    DELPHI 判断文件夹是否存在,并创建
    BusinessSkinForm汉化文件“bsconst.pas”
    DELPHI2010安装Comport4
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13302300.html
Copyright © 2020-2023  润新知