• python-day4-内置函数2


    摘要:python中有好多可用性特别强的内置函数,熟练掌握对于以后的编程过程中有很大的帮助~~~~

    callable函数、chr函数与ord函数、random函数、compile函数、evec与eval函数、dir函数,divmod函数、isinstance函数、filter与map函数

     1 #上节课回顾
     2 li = [11, 22, 33, 44]
     3 def f1(arg):
     4     arg.append(55)
     5 li=f1(li)
     6 print(li)
     7 >>>None  注意:因为函数无return所以返回值为None,li=f1(li)是把None值赋给li
     8 
     9 li = [11, 22, 33, 44]
    10 def f1(arg):
    11     arg.append(55)
    12 f1(li)
    13 print(li)
    14 >>>[11, 22, 33, 44, 55]
    1 #callable函数,判断是否可调用
    2 def f1():
    3     pass
    4 f1()
    5 f2=123
    6 print(callable(f1))
    7 #>>>True
    8 print(callable(f2))
    9 #>>>False
    1 #chr函数与ord函数
    2 r=chr(65)
    3 print(r)
    4 >>>A #将65转化为对应的ASCII码
    5 n=ord('a')
    6 print(n)
    7 >>>97 #将字幕a转化为对应的ASCII码数字
    #随机验证码,纯6位字母
    import random
    li=[]
    for i in range(6):
        temp=random.randrange(65,91)#随机获取65 到 91之间的数
        c=chr(temp)#将随机数转化为字母
        li.append(c)#追加放入列表中
    result="".join(li)
    print(result)
    
    #随机验证码,字母与数字结合
    import random
    li=[]
    for i in range(6):
        if random.randrange(0,5) % 2:
            num = random.randrange(0,10)
            li.append(str(num))
        else:
            temp=random.randrange(65,91)#随机获取65 到 91之间的数
            c=chr(temp)#将随机数转化为字母
            li.append(c)#追加放入列表中
    result="".join(li)
    print(result)
    #compile函数,将字符串编译为python代码
    exec接受:代码或者字符串
    exec("print('abc')")
    >>>abc
    
    #执行表达式,并且获取结果
    ret=eval("7+9+8")
    print(ret)
    >>>24
     1 #快速查看,对象提供了那些功能
     2 print(dir(list))
     3 >>>['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
     4     '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
     5     '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__',
     6     '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__',
     7     '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
     8     '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__',
     9     '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert',
    10     'pop', 'remove', 'reverse', 'sort']
    #divmod函数,共97条数据,每页显示10条,需要多少页
    r=divmod(97,10)
    print(r)
    >>>(9, 7) #9页余7条数据,可加判断r[1]>0 则共需要r[0]+1页
    1 #isinstance函数,判断是否为类的对象
    2 s=[11,22,33]
    3 r=isinstance(s,list)
    4 print(r)
    5 >>>True#列表s为列表的对象,字符串类型的值为str类的对象,字典类型的值为dict的对象
     1 #filter函数 循环第二个参数,让每个元素执行函数,如果函数返回True,表示元素合法,用于筛选
     2 由下面程序引出
     3 def f1(args):
     4     result=[]
     5     for item in args:
     6         if item>22:#判断列表中大与22的值
     7             result.append(item)#追加到result列表中
     8     return result
     9 li=[11,22,33,44,55]
    10 ret=f1(li)#ret接收result的值
    11 print(ret)
    12 >>>[33, 44, 55]
    13 #filter函数只返回True或False需要借助lambda自动return接收返回值
    14 f1=lambda a:a+30
    15 ret=f1(30)
    16 print(ret)
    17 >>>60
    18 
    19 #等同于
    20 li=[11,22,33,44,55]
    21 #循环第二个可迭代元素,判断是否大于30返回True,lambda自动接收返回值并放入result中用于筛选
    22 result= filter(lambda a:a > 30,li)
    23 # 小于返回Flaselambda不接收返回值
    24 print(list(result))
    25 
    26 #map函数,循环第二个可迭代元素,并返回值
    27 li=[11,22,33,44,55]
    28 result=map(lambda a:a+200,li)
    29 print(list(result))
    30 >>>[211, 222, 233, 244, 255]
    31 
    32 #两函数比较
    33 li = [11, 22, 33, 44]
    34 r = map(lambda a: a+100, list(map(lambda a: a>30,li)))
    35 print(list(r))
    36 # >>>[100, 100, 101, 101] #第二个元素结果返回0或1
    37 
    38 li = [11, 22, 33, 44]
    39 r = filter(lambda a: a+100, list(filter(lambda a: a>30,li)))
    40 print(list(r))
    41 #>>>[33, 44] #filter无法进行表达式运算,只能将True结果通过lambda返回
    42 
    43 li = [11, 22, 33, 44]
    44 r = map(lambda a: a+100, list(filter(lambda a: a>30,li)))
    45 print(list(r))
    46 #[133, 144] 结合运用,判断大于30的则进行表达式运算
    1 #len函数,注2.0版本中len字符自动转为utf-8的字节长度,3.0版本则不转换,一个字符为一个长度
    2 s='李光旭'
    3 print(len(s))
    4 #>>>3
    5 b=bytes(s,encoding='utf-8')
    6 print(len(b))
    7 #>>>9
  • 相关阅读:
    已解决】Sublime中运行带input或raw_input的Python代码出错:EOFError: EOF when reading a line(转)
    暂时解决Sublime Text 2不支持input问题(转)
    Python中的注释(转)
    You don't have permission to access / on this server
    mysql开启慢查询方法(转)
    php获取当前url完整地址
    js中日期转换为时间戳
    发现js端日期跟php端日期格式不一致
    首发Zend Studio正式版注册破解(转)
    Arduino入门笔记(3):单LED闪烁
  • 原文地址:https://www.cnblogs.com/liguangxu/p/5540859.html
Copyright © 2020-2023  润新知