zoukankan      html  css  js  c++  java
  • python学习day-6 内置函数 1

    一、作用域
    1、作用域即范围 - 全局范围(内置名称空间与全局名称空间属于该范围):全局存活,全局有效   - 局部范围(局部名称空间属于该范围):临时存活,局部有效 2、作用域关系是在函数定义阶段就已经固定的,与函数的调用位置无关,如下 name='alex'

    def foo():
    name='lhf'
    def bar():
    name='wupeiqi'
    print(name)
    def tt():
    print(name)
    return tt
    return bar


    r1 = foo()
    r2 = r1() # tt
    r3 = r2()
    foo()()()
    3、查看作用域:globals(),locals() LEGB 代表名字查找顺序: locals -> enclosing function -> globals -> __builtins__ locals 是函数内的名字空间,包括局部变量和形参 enclosing 外部嵌套函数的名字空间(闭包中常见) globals 全局变量,函数定义所在模块的名字空间 builtins 内置模块的名字空间

    二、匿名函数
    匿名就是没有名字 def func(x,y,z=1): return x+y+z lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字,让其有名字又没有意义了 func=lambda x,y,z=1:x+y+z func(1,2,3)
    三、高阶函数
    1.函数接收的参数是一个函数名  2#返回值中包含函数
    把函数当作参数传给另外一个函数
    def foo(n): #n=bar
    print(n)

    def bar(name):
    print('my name is %s' %name)

    # foo(bar)
    # foo(bar())
    foo(bar('alex'))

    2.返回值中包含函数
    def bar():
    print('from bar')
    def foo():
    print('from foo')
    return bar
    n=foo()
    n()
    def hanle():
    print('from handle')
    return hanle
    h=hanle()
    h()



    def test1():
    print('from test1')
    def test2():
    print('from handle')
    return test1()
    四、内置函数
    1.map函数 处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样
    arrary=[1,2,10,5,3,7]
    def map_test(func,array): 
    ret=[]
    for i in array:
    res=func(i)
    ret.append(res)
    return ret

    print(map_test(lambda x:x+1,num_l))
    res=map(lambda x:x+1,num_l)
    print('内置函数map,处理结果',res)
    # for i in res:
    # print(i) 一次释放后,就会输出空列表
    print(list(res))
    print('传的是有名函数',list(map(reduce_one,num_l)))


    msg='linhaifeng'
    print(list(map(lambda x:x.upper(),msg)))

    2.filter函数 filter遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则留下来
    实例一
    movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']
    print(filter(lambda n:not n.endswith('sb'),movie_people))



    res=filter(lambda n:not n.endswith('sb'),movie_people)
    print(list(res))


    print(list(filter(lambda n:not n.endswith('sb'),movie_people)))

    三种输出结果为:
    <filter object at 0x0000000002DBF240>
    ['linhaifeng']
    ['linhaifeng']


    实例二
    people=[
    {'name':'alex','age':1000},
    {'name':'wupei','age':10000},
    {'name':'yuanhao','age':9000},
    {'name':'linhaifeng','age':18},
    ]
    print(list(filter(lambda p:p['age']<=18,people)))




    3.reduce函数 处理一个序列,然后把序列进行合并操作
    from functools import reduce
    num_l=[1,2,3,100]
    print(reduce(lambda x,y:x+y,num_l,1))
    print(reduce(lambda x,y:x+y,num_l))
     
    4.all:对传入的值,进行布尔运算,全为真或者空就返回True,否则为Flase
    5.abs取绝对值
    6.any只要有一个是真,就返回True
    7.bin 转二进制
    8.bool 判断布尔值
    #空,None,0的布尔值为False,其余都为True
    print(bool(''))
    print(bool(None))
    print(bool(0))
    9.bytes字节
    (编码解码)
    name='你好'
    print(bytes(name,encoding='utf-8'))
    print(bytes(name,encoding='utf-8').decode('utf-8'))

    print(bytes(name,encoding='gbk'))
    print(bytes(name,encoding='gbk').decode('gbk'))

    print(bytes(name,encoding='ascii'))#ascii不能编码中文

    10.chr 转换为ascii码
    11.dir 某一个对象下边都有哪些方法
    12.divmod 得(商,余数)
    print(divmod(10,3)) 可用作分页功能
    13.eval 将字符串里的数据类型剔除出来;把字符串中的表达式进行运算
    14.可hash的数据类型即不可变数据类型,不可hash的数据类型即可变数据类型
    15.help帮助函数
    16.
    print(bin(10))#10进制->2进制
    print(hex(12))#10进制->16进制
    print(oct(12))#10进制->8进制
    17.
    print(isinstance(1,int))
    print(isinstance('abc',str))
    print(isinstance([],list))
    print(isinstance({},dict))
    print(isinstance({1,2},set))
    18.global locals
    name='哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈粥少陈'
    print(globals())
    print(__file__)

    def test():
    age='1111111111111111111111111111111111111111111111111111111111111'
    # print(globals())
    print(locals())

    test()

     
     


    复制代码
  • 相关阅读:
    银联支付集成之 ---- 安卓
    在Mac系统下配置PHP运行环境
    ios工程中一天只让显示一次的广告,或是弹出窗,如何实现
    iOS工程中一天只让进行一次的操作如何做?
    简单实现UIlabel可复制功能
    iOS添加测试设备与调试
    iOS-最全的App上架教程
    javaIO--文件操作类
    javaIO--字符流
    javaIO--字节流
  • 原文地址:https://www.cnblogs.com/wangxiaoyienough/p/9260484.html
Copyright © 2011-2022 走看看