zoukankan      html  css  js  c++  java
  • <潭州教育>-Python学习笔记6@函数基础,必备参数,位置参数,可选参数

    6.1 函数定义:
    def BiJiao(a,b):     #驼峰规则(首字母大写),见名知意-函数名大写
        if a>b:
            print(a)
        elif a==b :
            print('xiangdeng')
        else:
            print(b)
    运行:       
    BiJiao(1,3)
    3
    6.2函数参数-默认参数、可选参数、必备参数
    6.2.1,无参数
    def fun1():
        print('没参数’)    #调用fun1()   #调用函数必须在函数名后加括号,表示调用没参数
     
    6.2.2 必须传参数
    def fun2(a):     #必备参数
        print('必须传参数’)     ##调用:fun2(1)必须传参数
     
     
    6.2.3默认参数
    def fun3(b=3):  #参数可传可不传,可指定
        print(b,'默认参数')
     调用:>>> fun3()   3 默认参数
     
    6.2.4第一种不定常参数函数
    def fun4(*arg):   #结果都包装成元祖
        print(arg)
    调用:>>> fun4()
    ()
    >>> fun4(1,2,3,4)
    (1, 2, 3, 4)
    >>> fun4()  # ()参数可以随意传递
    >>> fun4(1,2,3,4,5) (1, 2, 3, 4, 5) 参数可以随意传递
    >>>
    >>> fun4([1,2,3,4,5])
    ([1, 2, 3, 4, 5],) 参数可以随意传递,字符串、元祖、字典
    >>> fun4({1,2,3})
    ({1, 2, 3},) 参数可以随意传递,无论传递什么,结果都包装成元祖,逗号是因为元祖必须两个以上元素,元组只有一个元素就得加逗号
    >>> fun4(*{1:11,2:22})      #参数加一个*号可以把字典列表等解开 
    >>>(1, 2)
     
    6.2.5第二种不定常参数函数
    def fun5(**kwarg): #参数可传可不传, 结果包装成字典
        print(kwarg,'可传可不传')
    调用的时候是字典的关键字key参数
    >>> fun5()
    {} 可传可不传
    >>> fun5(a=1)
    {'a': 1} 可传可不传
    >>> fun5(a=1,b=2,c=3)
    {'a': 1, 'b': 2, 'c': 3} 可传可不传
     
    >>> fun5(**{'a':1,'b':2})   #加两个*号可以传递字典作为参数。
    {'a': 1, 'b': 2}
     
    6.2.6混合参数函数一
    def fun6(m,n=1):   #必备参数必须放在前面,否则报错
    pass
    >>> fun6(b=2,3)
    SyntaxError: positional argument follows keyword argument  #关键字参数(b=2)要放在最后
    >>> fun6(m=3,n=2)    #这样则不报错
    >>> 
     
    6.2.7 混合参数函数二,
    要点,定义的时候a必备参数要在默认参数之前,调用时候b关键字参数放最后,c确保必须取值的参数取值
    def fun7(*arg,b,m=1):
    pass
    >>> fun7(1,3,b=2)
    时候
     
    6.2.8混合参数函数三
    def fun8(b,m=1,*arg):
    print(arg)
    >>> fun8(1,2,*(1,2,3))   #*号函数结果会解包
    (1, 2, 3)
    >>> fun8(1,2,(1,2,3))    #没*号函数结果不会解包
    ((1, 2, 3),)
     
    def fun8(b,m=1,*arg):    #默认用这种顺序传递参数,必备、默认、不定常这样顺序一般不会报错。
     
    关键字参数,调用的时候指定的参数都是关键字参数,可以是默认、必备参数
     
    6.3 return的作用
    def fun9(a,b):
        if a>b:
            return(a)
        elif a==b:
            print('相等')
        else:
            return(b)
     
        >>> fun9(3,5)
    5
    >>> s=fun9(1,1)
    相等
    >>> s
    >>> print(s)
    None
    作用:1,返回值,2,函数结束标志。
     
    def fun10(a,b):
        return'没下文了'
        if a>b:
            return(a)
        elif a==b:
            print('相等')
        else:
            return(b)
    >>> fun9(1,9)
    '没下文了'
    >>> fun10(1,2)
    3
    6.4匿名函数lanmbda
    >>> g=lambda x:x+1
    >>> g(4)
    5
     
    总结:(python 参数无类型)
    #1:必备
    #2:默认
    #3:可变
    #4:*args 包装的参数,包装成元祖
           *kargs 接受的参数,包装成字典(关键参数) key =value
     
    # 1.找到1-100内的质数,结束之后打印“搜索结束”.
    # (质数:只能被1和自己整除,如2,只有除以1和2才能整除)
    count = 0
    for x in range(2,101):
        for y in range(2,x):
            if x % y == 0:
                break
        else:   ###当程序正常执行,没有执行break时才会执行else部分
            print (x)
     
    # 2.定义一个函数,能够输入字典和元组。将字典的值(value)和元组的值交换,交换结束后,打印字典和元祖。
    tu = (4, 5,8)
    dic = {'a': 1, 'b': 2, 'c': 3}
    def switch(t,d):
        t = list(t)
        if len(t)  >= len(d):
            n = 0
            for key in d.keys():
                d[key],t[n] = t[n],d[key]
                n += 1
            print ('tu:',t,' ''dic:',d)
        if len(t)  < len(d):
            raise TypeError('不能这样子,字典长度不能比元祖长度长!')
    switch(tu,dic)
     
     
    # 3.定义一个函数,必须包含4种参数形式,然后打印这4个参数,最后返回'OK'。
    def function(a,b = 4,*args, **kargv):
        print ('必备参数:',a,end= ' ')
        print ('默认参数:',b,end=' ')
        print ('可选参数元祖:',args,end=' ')
        print ('可选参数:',kargv,end=' ')
     
    function(1,5,1,2,3,k=10)
    print('-----------------分割线-----------------')
    function(1,10,*(1,2,3))
    print('-----------------分割线-----------------')
    function(1,10,*(2,3,4),**{'name':'Stone','age':24})
    print('-----------------分
  • 相关阅读:
    归并排序(Merge Sort)
    AtCoder AGC035D Add and Remove (状压DP)
    AtCoder AGC034D Manhattan Max Matching (费用流)
    AtCoder AGC033F Adding Edges (图论)
    AtCoder AGC031F Walk on Graph (图论、数论)
    AtCoder AGC031E Snuke the Phantom Thief (费用流)
    AtCoder AGC029F Construction of a Tree (二分图匹配)
    AtCoder AGC029E Wandering TKHS
    AtCoder AGC039F Min Product Sum (容斥原理、组合计数、DP)
    AtCoder AGC035E Develop (DP、图论、计数)
  • 原文地址:https://www.cnblogs.com/Stone-Fei/p/8530518.html
Copyright © 2011-2022 走看看