zoukankan      html  css  js  c++  java
  • python函数的用法

    python函数的用法

    目录:

    1.定义、使用函数

      1.函数定义:def

      2.函数调用:例:myprint()

      3.函数可以当作一个值赋值给一个变量 例:a=myprint()    a()

      4.写return   return必须是最后一句,不写return返回null

    2.函数的参数

      1.不带参数的函数

      2.带固定参数的函数

      3.带可变参数的函数

      4.带关键字参数的函数

      5.参数顺序:固定、可变、关键字参数    #可变参数最多只能有一个

    3.变量的作用范围

      1.全局变量:除在函数内声明的变量都是全局变量

      2.局部变量:当一个变量同时存在于函数内和函数外,函数内优先使用局部变量

      3.函数再调用之前,函数内部的变量必须再调用之前存在

      4.global 改的是全局变量

      5.nonlocal用在嵌套函数,内层改外层

    4.可变量与不变量

      1.函数内部不能修改不变量,在内部只是把值传进去,外部仍然是原来的值

      2.可变量:列表、字典、集合

      3.不变量:数字、字符串、元组

    5.匿名函数与高阶函数

      1.匿名函数:很短,只用一次

      2.高阶函数:

          过滤:filter

          遍历:map

          递归:reduce

          排序:sorted

    2.函数的参数

    print("函数的定义:")
    print("不带参数的定义:")
    def myfunc():
        print("哈哈")
        return 1
    myfunc()
    a=myprint()    #先将myprint函数执行一遍,将返回值赋给 a
    print("a的值:",a)
    print("a的类型",type(a))
    b=myprint      #b 即myprint函数
    b()         #调用函数
    print("b的值:",b)
    print("b的类型",type(b))
    print("带固定参数的定义:")
    def myfunc2(a1):
        c=sum(a1)
        print(c)
    myfunc2([1,2])
    print("带可变参数的定义:")
    def myfunc3(*args):
        c=sum(args)
        print(c)
    myfunc3()
    myfunc3(1)
    myfunc3(1,2,3)
    print("固定参数与可变参数:")
    def myfunc4(a,*args):
        print(a,args)
    myfunc4("a","b")
    myfunc4("a","b","c")
    print("固定参数、可变参数、关键字参数:")
    def myfunc5(a,*args,k=2):
        print(a,args,k)
    myfunc5(1,2)
    myfunc5(1,2,3,k=3)

    3.变量的作用范围

    #全局变量
    print("全局变量:")
    a="sss"
    for i in a:
        m=i
    print(a)
    print(m)
    print("局部变量:")
    def mycount():
        a=1
        b=2
        print("局部a",a)
        return a+b
    res=mycount()
    print(res)
    print("全局a",a)
    print("函数内修改全局变量:")
    d=9
    a=3
    def myfunc(a1,a2):
        global a    #函数内部修改全局变量
        a=4
        print("内部a",a)
        return a1+a2
    print(myfunc(a,d))
    print("全局a",a)
    print("嵌套函数变量:")
    def f1():
        a=3
        def f2():
            nonlocal a      #只在嵌套函数中使用,内层修改外层
            print(a)
            a=5
        f2()
        print(a)
    f1()

    4.可变量与不变量

    a1="abc"
    b1=[1,2,3]
    print("不可变量字符串与可变变量列表的用法")
    def f1(a,b):
        a+="d"
        print(a)
        b.append(4)
        print(b)
    f1(a1,b1)
    print("字符串是不可变量",a1,"列表是可变量",b1)    #字符是不可变量,在函数外值还是原来的值,列表是可变量,在函数内修改,函数外也跟着修改
    print("不可变量数字的用法:")
    c1=66
    def f2(c):
        c+=6
        print(c)
    f2(c1)
    print("数字是不可变量",c1)
    print("可变变量集合的用法:")
    d1={1,4}
    def f3(d):
        d.add(7)
        print(d)
    f3(d1)
    print("可变变量集合",d1)
    print("可变量字典的用法:")
    e1={1:"x",2:"y"}
    def f4(e):
        e[1]="m"
        print(e)
    f4(e1)
    print("可变量字典",e1)

     5.匿名函数与高阶函数

    filter: filter(function,sequence),function可以是匿名函数或者自定义函数,它会对后面的sequence序列的每个元素判定是否符合函数条件,返回TRUE或者FALSE,从而只留下TRUE的元素;sequence可以是列表、元组或者字符串 

    map:它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回

    reduce:reduce(function,iterable),其中function必须传入两个参数,iterable可以是列表或者元组

    sorted:函数对所有可迭代的对象进行排序操作。

    python 匿名函数与高阶函数
    #匿名函数lambda
    print("匿名函数:")
    f=lambda i:i*2
    print(f(3))
    f2=lambda m,n:m*n
    print(f2(2,4))
    print("高阶函数:")
    #筛选filter
    print("筛选filter:")
    result=[("G211","5",""),
            ("D311","7",""),
            ("T411","","8"),
            ("K511","","6")
            ]
    print(list(filter(lambda i:i[0][0] in "GD",result)))
    print(list(filter(lambda i:i[0][0] not in "GD",result)))
    #遍历map
    print("遍历map:")
    list(map(print,filter(lambda i:i[0][0] in "GD",result)))
    list(map(print,filter(lambda i:i[0][0] not in "GD",result)))
    list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))
    print(list(map(abs,[-1,2,-3,4])))
    #递归reduce
    print("递归reduce:")
    from functools import reduce
    def add(x,y):
        return x+y
    print(reduce(add,[1,2,3,4,5]))
    print(reduce(lambda i,j:i+j,[1,2,3,4,5]))
    #排序sorted
    print("排序sorted:")
    print(sorted([1,5,7,3,-2]))
    print(sorted([1,5,7,3,-2],reverse=True))#reverse=True从大到小排序,默认从小到大
    l=[('a', 1), ('b', 2), ('d', 6), ('e', 4), ('c', 3)]
    print(sorted(l,key=lambda i:i[0]))
    print(sorted(l,key=lambda i:i[0],reverse=True))

     

      

  • 相关阅读:
    maven学习(二)
    maven学习(一)
    一步步点亮led之软硬件分析
    mkv210添加校验和
    led部分Makefile
    makefile
    交叉编译工具链
    基础知识
    C语言复杂表达式与指针应用
    指针
  • 原文地址:https://www.cnblogs.com/yuzly/p/10311863.html
Copyright © 2011-2022 走看看