函数的相关知识

------------------------------函数相关---------------------------

  • return

    • 默认返回值为None

    • 返回函数的值

    • 终止代码的执行

    • 可以返回任意类型

    • 当函数有返回值时,调用函数时必须有一个新的变量来接受,这时才返回return的值

      def fun():
          return 5, 8 ,'yang'
      a=fun()
      print(a)#不加括号时,默认返回元组
      
  • 函数有几个形参就应该有几个实参,不然无法运行

    #练习1
    def func(name,age):
        a = 123
        b =456
        d =789
        print(a)
        return (111)
    a = func(1,2)#返回值为123
    #练习2
    def func(name,age):
        a = 123
        b =456
        d =789
        print(a)
        return (111)
    a = func(1,2)
    print(a)
    #返回值为123 \n 111
    
    • 在进行强制转换的时候(列表、元组、集合),如list();其相当于先对其中的元素进行循环,再逐次进行添加,
    • int类型不可进行强制转换,因为其为不可迭代对象
    a = 'hsdhj'
    b = (1,2,3)
    c ={'name':'yang','age':'18'}
    print(list(a),list(b),list(c))
    #其结果为:
    ['h', 's', 'd', 'h', 'j'] [1, 2, 3] ['name', 'age']
    
    • 三元运算与函数的 return相结合
    def fun(a,b):
        return a if a > b else b
    v = fun(1,2)
    prin(v)
    

    函数参数

    • 位置传参

    • 关键字传参:位置可变

    • 关键字传参和位置传参可以混合使用(位置参数应放在前面,关键字参数放在后面,合起来等于总参数的个数),比如:打开文件时

    • 默认参数:可传可不传,传了就覆盖,不传时就是默认值,在设定默认参数时,不可变类型随便用,可变类型,坑!

    • *args 万能参数(打散)

      • 可以接受任意个参数,并将参数转化为元组
      • 不支持关键字传参
      • 可以与位置传参混用
      • 与关键字传参时,关键字传参必须在后面
      def fun(*args):#形参之前加*,可以传入多个参数,即不限制
          print(args)
      b = fun(*[1,2,3,4,5],)#前面不加*即当做一个元组,加了*即将其打散放入
      
    • **kwwargs

      • 只能用关键字传参

      • 可接受任意个参数,并将参数转化为字典

      • 单个*例子

      • ef fun(**kwargs):
            print(kwargs)
        b = fun(k1 = 1,yangf='zi')
        
      • 两个**例子:整体把字典复制过去

      • def fun(**kwargs):
            print(kwargs)
        b = fun(**{'ke':'yam','li':'yang'})
        
    • 两个参数混用

      • def fun(*args,**kwargs):
            print(args,kwargs)
        b = fun(*[1,2,3,4],k1='yang',v2='li')
        
  • 函数的参数传入的是一个地址

    v = [11,22,33,44]
    def funs(a):
        print('外',id(a))
    print('内',id(v))
    funs(v)
    #其输出的结果是一样的
    
posted @ 2020-06-25 23:48  小杨的冥想课  阅读(153)  评论(0编辑  收藏  举报