2018-09-23

eval 和 exec 函数

     首先说一下 这两个函数的返回值是可以让程序执行的函数

    eval()返回的是一个表达式 如eval('1+2') #3

    而exec 返回的是一条可执行的是一条语句

    exec(“print('hello,world')”) #hello world

    联合起来举个例子

    x = 100

    y = 100

    s ='x+y'

    eval(s)  #200

    exec(s,{'x':10,'y':20} #30

    exec(s,{'x':10}) #110

    exec(s,{'x':200},{'x':10,'y':30}) #40

函数是一等公民

    函数本身可以赋值给变量,赋值后可以绑定函数

    允许函数返回另一个函数

    允许函数作为参数传入另一个参数

函数的可重入性

    可重入性是指一个函数传入一定的参数,则结果一定

高阶函数:

    什么是高阶函数?
        满足下面的某一个条件即可作为高阶函数

            函数作为参数传入另一个函数

            函数返回一个函数

python 中内建的高阶函数

    map函数:

        map(func,*iterables)用函数可迭代对象的每一个元素作为参数计算出新的可迭代对象,当最后一个可迭代对象不提供数据时,此可迭代对象生成结束

    示例;
        def p(x)

                return x**2

        L = [i for i in map (p,range(3))]  #0 1 4

filter 函数

    filter(函数,可迭代对象)

作用:筛选可迭代对象iterable的数据,返回一个可迭代对象,此可迭代对象对iterable进行筛选

说明:函数func将对每个元素进行求值,返回False 则丢弃,返回True则保留

    示例:
    def p(x):
        return False if x%2!=0 else True

   L = [i for i in filter(p,range(5))] #0 2 4

sorted 函数

    作用对可迭代函数进行排序

    格式:

    sorted(itertable,key = None,reverse = False)

    说明;

        itertable 是可迭代对象

        key 是作为排序的依据

        reverse 是反转, 默认从小到大

            >>> L = [1,2,3,-4,-5]

            >>> def p(x):

                    ...    return -x

                    ...

            >>> sorted(L,key=p)

[3, 2, 1, -4, -5]


明天复习一下快速排序

你可能感兴趣的:(2018-09-23)