• python s13 day04


    1.1 all() 和 any( )


     
    all()
    any()
     
    0None,"", [], (),{} #布尔值为0的 列举,None ,空列表,空元祖,空
    print(bool(()))
     
    所有为真,才为真
    n = all([1,2,3,None])
    print(n)
     
    只要有真,就为真
    n = any([[],0,"",None])
    print(n)
     
    ascii() # 自动执行对象的 __repr__
    class Foo:
    def __repr__(self):
    return "444"
     
    n = ascii(Foo())
    print(n)
    bin()
    oct()
    hex()
    print(bin(5))
    print(oct(9))
    print(hex(15))
     
     
    1.2、callable( )
    li=[11,22,33,44,]
    def f1(arg):
        arg.append(55)
     
     
    #li = f1(li)  ##从新复制的,函数默认返回None
    f1(li)
    print(li)
     
    def f1():
        pass
     
    f2=123
    f2()
     
    print(callable(f1)) #验证函数是否可执行
    print(callable(f2))
     
    ==========================================================================
     
    #char() #内置函    把一个数字转化为字母
    #ord()  #内置函数  把一个字母转化为数字
     
    >>> ord("存")
    23384
    >>> chr(23384)
    '存'
    >>>
     
    r=chr(55)
    print(r)
    n=ord("a")
    print(n)
     
    '''
     
    '''
    import random  #生成随机验证码
    li= []
    for i in range(6):
        temp=random.randrange(65,90)
        c=chr(temp)
        li.append(c)
     
    result="".join(li)
    print(result)
     
    import random  #生成随机验证码
    li= []
     
     
    for i in range(6):
        r=random.randrange(0,5) #这个本来就是不确定法的,所以当指定的数值出现时,机会生成个 str()字符串形式,增加到列表中。
        if r==2 or r ==4:
           num=random.randrange(0,10)
           li.append(str(num)) # 注意此处的
        else:
           temp=random.randrange(65,90)
           c=chr(temp)
           li.append(c)
    result=''.join(li)
    print(result)
     
     #生成随机验证码方法三
    import random    
    li= []
    code=[]
    for i in range(6):
        if i ==random.randint(1,5):
            code.append(random.randint(1,5))
     
        else:
            temp=random.randint(65,90)
            code.append(chr(temp))
    print(code)
     
     
     
    ####################################################
     
    '''
    compile()      #专门用来编译,将字符串编译成 python 代码
     
    s='print (123)'
    r
     
     
     
    两都执行 python代码的,不同的是结果有无返回。。。。
    #exec()  #函数显更niubi ,接收代码或者字符串。无返回值
    #eval()  #执行专门 接收处理 表达式. 返回一个结果有返回值。【用~的多】
     
    需求实现,给你一个excel,利用eval处理;
     
    '''
    '''
    ret=exec('8*8') #exec无返回值,得不到64的值
    print()
     
    ret=eval('7+9+9')
    print(ret)
     
    ret=eval('print (123)') #eval执行表达式,就像是 字符串。
    print (ret)
    执行结果:
     
    None
    25
    123
    None
     
    '''
    print (dir(list))  #内部函数
    help (list)      #功能显示
     
    '''
     
    '''
    #需求实现:分页的实现。
    #共有97页,每页显示10条,需要多少页。
    r=divmod(199,10) #a 除以b 得到的商和余数。
    print(r[0])
    print(r[1])
     
    n,m=r[0],r[1]
    执行结果:
    19
    9
     
     
    ==================================================================
    #对象和类区别?
    #s='alex'  #对象【str】 'alex'===> str , list
     
    #对象是类的实例
    #用于判断某个对象-->是否为某个类的实例。
    s='alex'
    r=isinstance(s,dict)
     
    print (r)
     
    #字典才是字典的实例,
    s=[11,11,11]
    b=isinstance(s,list)
    print(b)
     
    '''
     
    ################################################
    '''
    #字典和列表,元祖都是可迭代的对象。
    #Python内建的filter()函数用于过滤序列。
    #和map()类似,filter()也接收一个函数和一个序列 。
    #和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
     
    #filter(函数,可迭代对象)
    def f2(a):
    if a>22:
    return True
    li=[11,22,33,44,55]

    ret=filter(f2,li)
    print(ret) #因为ret 是个元素,是个filter 类型。
    print(list(ret))
    print(tuple(ret))
    #filter内部,循环第二个参数,
    #根据True 或者 false
    执行结果:
    <filter object at 0x0000010B5E6E2048>
    [33, 44, 55]
    ()
     
     
    #方法二:【三元运算】
    lst = [11,22,33,44,55]
    y = [a for a in lst if a > 22]
     
    print(y)
     
     
     
    #lambda 自动return True false
    f1=lambda a:a>30
    ret=f1(90)
    print(ret)   #返回的是True.可用在此处~~~~
     
    ##比较的是:lambda也是函数。通过他也能实现出来。
    llit=[32,32,13,78,79]
    result=filter(lambda a: a>32,llit)
    print(list(result))
     
    '''
     
    ##########################################################
    '''
    #map()函数
     
    #此函数类加+100
    list1=[11,22,33,44,55]
    def f1(args):
        result=[]
        for i in args:
            result.append(100+i)
     
        return result
    f1(list1)
    print(f1(list1))
     
    #进行更简单的方法,引出map()
    #map(函数,可迭代的对象(PS:可以for 循环的东西,如list,tuple.....))
     
     
    list1=[11,22,33,44,55]
    def f2(a):
    return a+100
    result=map(f2,list1)
    print (result)
    print(list(result))
    执行结果:
    <map object at 0x00000223B5EA8588>
    [111, 122, 133, 144, 155]
     
    对比的是:
    list1=[11,22,33,44,55]
    def f2(a):
    return a+100
    result=map(f2,list1)
    print (result) #打印出类型
    print(tuple(result)) #此处使用的tuple可迭代的对象。。
    执行结果:
    <map object at 0x000002E5DC3F8588>
    (111, 122, 133, 144, 155)
     
    print('=======================')
    #NEXT....也可简单的用lambda函数。
    result=map(lambda a:a+100,list1)
    print(result)
    print(list(result))
     
    #总结:
    #filter #函数返回True,将元素添加到结果中
    #map #将函数返回值添加到结果中。。。。
     
    #学生附加题
    li = [11,22,33,44,55]
    result = map(lambda a:a+100,list(filter(lambda a:a>33,li)))
    print (list(result))
     
    '''
    ##############################################################
    '''
    # locals()  #局部变量
    # globals() #全局变量
    #
    # id()     #内存地址
    # isinstance()
    # issubclass()
     
    byte( )内置函数使用。
    #len()     #使用字典啊,列表啊
    s='李姐'
    print(len(s)) #说6或者2都对,
    # python3更进步了【默认显示是字符】。。
    #python2 显示的是【显示是字节】。
    s='李姐'
    b=bytes(s,encoding='utf-8') #byte 是字符串转换为 字节。【从硬盘到内存】
    print(len(b)) #python3用这种方式显示的字节。。【重要呢~~~】
     
    执行结果:
    "C:Program FilesPython35python.exe" "C:/Users/ju do it/PycharmProjects/untitled1/day04/笔记部分/s2.py"
    2
    6
     
    ========================================================================================================================
     
    '''
    提示:
    #将一个字符串转换为一个字典和列表等,字符串内部的必须是双引号。
     
     
    import json
    s
    ='[1,2,3,"ew",2]' ##此处的里的元素是双引号,不能是单引号。注意
    #s='["k1":"v1"]'
    n=json.loads(s)
    print(type(n),n)
    执行结果:
    <class 'list'> [1, 2, 3, 'ew', 2]
     
     
    #NEXT
     
    r=input("input:")  #定义个字符串,因为默认的输入的为字符串。
     
    #dic=json.loads(r)
    dic='server 10.10 122.32,ip:192.168.1.1 weight:23,maxconn:30'
    bk=dic['backend:']
    rb="server %s %s weight %d  maxconn %d" % (dic['record'])['server'],
                                               dic['record']['server'],
                                               dic['record']['weight'],
                                               dic['record']['maxcon'])
     
     
    '''
    ########################################################
    '''
    #map() 对比filter()
     
    #@property  和  __repr__(self):
    #repr()
    #staticmethod()
     
    #reversed() #反转
    #round()  四舍五入
     
    #slice() #
     
    l1=["alex",11,22,]
    l2=['is',12,23,]
    l3=['sb',13,14]
    r=zip(l1,l2,l3)
    #print(list(r))
     
    temp=list(r)[0]
    ret=' '.join(temp)
    print(temp)
    print(ret)
    '''
    ###########################################
    ###########################################
     
    '''
     
     
    def login(func):
    #print ('登录成功!')
    def iner():
    print ('登录成功!')

    func()
    #这里也是第一次执行f1()
    #return func() #这里是第二次执行f1()
    #注意的是遇到了 return 就会终止~执行。
    print ('退出登录')


    #return iner() #正规写法
    return iner #返回函数体等同于和那个执行函数 inner( )= f1( )函数。
    
    
    # 执行函数
    
    
    @login
    
    
    def f1():
    
    
        print('F1')
    
    
     
    
    
    f1()
    
    
     
    #@+函数名
    #功能:  1. 自动执行outer()函数并将下面的函数当f1当做参数传递
    #           2. 将login() 函数返回值,重新赋值给 f1 .
     
    '''
    def login(func):
    #print ('登录成功!')
    def iner():
    print ('登录成功!')
    r=func() #这里是第一次执行f1()
    print ('退出登录')

    return r #返回f1()函数执行的return值。。

    #return iner() #错误写法,返回的是None.就说为空。
    return iner #返回函数体



    @login
    def f1():
    print('F1')
    return 'f1操作成功'

    ###main code####
    ret=f1()
    print ("返回值",ret)
    执行结果:
    登录成功!
    F1
    退出登录
    返回值 f1操作成功
     
    '''
     
    #########万能参数##########;
    '''
    def login(func):
    #print ('登录成功!')
    def iner(*args,**kwargs):
    print ('登录成功!')
    r=func(*args,**kwargs) #这里是第一次执行f1()
    print ('退出登录')

    #return r #返回f1()函数执行的return值。。
    #对比,这里才是真正执行 下面函数的地方。
    return r

    #return iner() #错误写法
    return iner #返回函数体



    @login
    def f1(arg):
    print('F1',arg)
    return 'f1操作成功'

    @login
    def f2(a1,a2):
    print('F2',a1,a2)
    return 'f2操作成功'

    @login
    def f3():
    print('F3')
    return 'f3操作成功'

    #main code 执行函数;
    ret=f1('砍他')
    print ("返回值",ret)
     
    执行结果:
    登录成功!
    F1 砍他
    退出登录
    返回值 f1操作成功
    ##################################################
     
     
     
     
     
     
     
     
     
    GitHub:https://github.com/ju-do-it
    个人博客:https://zhangju.lookdoc.cn
    博客园:https://www.cnblogs.com/zhangju
    Copyright ©2020 Ju-do-it
    【转载文章务必保留出处和署名,谢谢!】
  • 相关阅读:
    c: setjmp.h 库的使用
    c:struct之匿名struct
    php:对象的数组(3)
    linuxos:gcc include 具体位置
    linuxos: LAMP环境搭建
    c: macro define 复杂的宏定义
    php:对象的数组(1)
    springboot发送邮件
    springboot 展示图片
    wsl安装centos
  • 原文地址:https://www.cnblogs.com/zhangju/p/5558018.html
Copyright © 2020-2023  润新知