• 2018/11/9(python)


    ---恢复内容开始---

    1.前项引用

    在函数定义之前,函数无法调用。

    2.递归

    import time
    def T(x):
        if x==1:
            return x
        else:
            time.sleep(2)     #暂停
            print(x)
            return x*T(x-1)
    x=T(5)
    print(x)

    3.函数调用

    def T():
        print(1)
    def Y():
        return T    #返回T函数地址
    Y()()

    **********************************************************************************************************************************************************************************************************************

    4.匿名函数==》lambda定义

    f=lambda x:x+1           #x表形参,x+1表函数操作,f作为匿名函数返回接收
    print(f(10))            

    **********************************************************************************************************************************************************************************************************************

    编程方法论:1.面向过程。

          2.函数式。==>用编程语言去实现数学函数。

          3.面向对象。

    满足以下条件之一就是高阶函数:

                  1.把函数当作参数传给另外一个函数。

                  2.返回值中包含函数。

    #例1
    def fo(n):
        print(n)
    def T():
        print("来自T")
    fo(T())
    #例2
    def f():
        print("来自f")
    def F():
        print("来自F")
        return f()
    F()

    尾调用:在函数的最后一步调用另一个函数(最后一行不一定是函数的最后一步)

    map函数

    map(处理方法,可迭代对象)

    #功能函数
    def add(x):
        return x+1
    def sub (x):
        return x-1
    def pf(x):
        return x**2
    #数据及功能处理
    def fun(op,num):
         new=[]
         for i in num:
            s=op(i)
            new.append(s)
         return new
    
        
    num1=[5,3,2,4,5,2,5]
    
    print(fun(add,num1))
    print(fun(pf,num1))
    
    #map写法,实现简单,可读性差
    print(list(map(add,num1)))
    
    #例2
    x="djuwjdjfihwofgg"
    def daxie(x):
        return x.upper()
    print(list(map(daxie,x)))       #需要用list转变为列表,否则返回map首地址

     filter函数

    people=["李四","张三","王二","李二"]
    def start(x):
        return x.startswith("")
    def end(x):
        return x.endswith("")
    
    #法一
    def F(x,y):
        s=[]
        for i in y:
            if x(i):
                s.append(i)
        return s
    s=F(start,people)
    print(s)
    end_1=F(end,people)
    print(end_1)
            
    
    #法二
    result=filter(start,people)
    print(list(result))
    result_2=filter(end,people)
    print(list(result_2))

    reduce函数

    reduce(函数,序列,初始值)

    reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

    from functools import reduce
    num=[4,3,7,1,6,5,10]
    def A(x,y):
        return x+y
    result=reduce(A,num,0)
    print(result)

    **************************************************************************************************************************************************************************

    内置函数

    abs()         <==取正

    all(序列)        《==判断是否所有元素为True

    any()            <==有一个为真就返回真

    bin()      <十进制转二进制

    bool()    判断布尔值

    bytes()    <==二进制编码,解码

    name='你好'
    print(bytes(name,encoding='utf-8'))

    chr()      <==转换为对应ASCII

    dir()      <==查看对象方法

     print(dir(all))

    divmod()    <==求商和余数

    print(divmod(10,3))

    eval()    <==提取字符串中的数据

    eval("3*2")

    可hash的数据类型即不可变数据类型

    hash()    《==将字符串进行hash运算

    hex()    <==十进制转十六进制

    oct()    <==十进制转八进制

    isinstance()  <==判断数据类型

    print(isinstance(10,int))
    print(isinstance("10",int))
  • 相关阅读:
    超详细动画彻底掌握深度优先,广度优先遍历!
    拜托,别再问我什么是 B+ 树了
    高性能短链设计
    Gradle build 太慢,可能是你使用的姿势不对
    看完这些,你也能成技术专家
    x58平台 服务器电源配置 tdp
    系统掉盘,机械硬盘掉盘,固态掉盘
    centos7 修改ip和dns
    centos 修改hostname
    TCP三次握手和四次挥手过程
  • 原文地址:https://www.cnblogs.com/2018-1025/p/9940991.html
Copyright © 2020-2023  润新知