• python之路 内置函数,装饰器


    一、内置函数

    #绝对值
    abs()
    #所有值都为真才为真
    all()
    #只要有一个值为真就为真
    any()
    #10进制转成二进制
    bin()
    #10进制转成八进制
    oct()
    #10进制转成十六进制
    hex()
    #布尔值
    bool()
    #字符转换成字节
    bytes()
    #字节转换成字符
    str()
    
    #对文件的操作
    open()
    #基本流程
    #打开文件
    op_file=open("file name","rwb+")
    #操作文件
    op_file.operation()
    #关闭文件
    op_file.close()
    
    #检查函数是否可以被调用
    callable()
    #通过字节数查找Ascii中的字符
    chr()
    #通过Ascii中的字符查找字节
    ord()
    #随机数函数
    random()
    #把字符串编译成Python代码
    compile()
    #接收字符串,讲字符串当成表达式,有返回值
    eval()
    #执行Python代码,没有返回值
    exec()
    #快速获取对象提供的功能
    dir()
    #快速获取帮助
    help()
    #分页函数
    divmod()
    #判断对象为谁的实例是否为真
    isinstacnce()
    #函数返回值True,讲元素添加到结果中
    filter()
    #将函数返回值添加到结果中
    map()
    #不可变集合(未讲到)
    frozenset()
    #变为浮点数
    float()
    #所有全局变量都放在globals中
    globals()
    #所有局部变量都放在locals中
    locals()
    #生成hash值,把对象转换成hash值,一般用于字典中的key
    hash()
    #求最大值
    max()
    #求最小值
    min()
    #求和
    sum()
    #查看内存地址
    memoryview()
    #求次方
    pow()
    #范围函数
    range()
    #反转函数
    reversed()
    #四舍五入
    round()
    #切片
    slice()
    #排序
    sorted()
    #判断对象是什么类型
    type()
    #将不同元素的列表或元组(有序的)索引相同的组合成一个元祖,如果索引有差异则不显示
    zip()

     1、abs

    1 #数字的绝对值
    2 >>> abs(-100)
    3 100
    4 >>> abs(100) 
    5 100

    2、bool

    1 #判断是真是假
    2 >>> bool(0)
    3 False
    4 >>> bool(1)
    5 True
    6 >>> bool(2)
    7 True
    8 >>> bool("")
    9 False

    3、all

    1 #所有为真才为真
    2 >>> all('123')
    3 True
    4 >>> all([0, 1])
    5 False
    6 >>> all([1, 2])
    7 True

    4、any

    1 #有一个为真即为真
    2 >>> any('123')
    3 True
    4 >>> any([0, 1])
    5 True
    6 >>> any([0, ''])
    7 False

    5、bin

    #0b表示10进制
    >>> bin(10)
    '0b1010'

    6、oct

    1 #0o表示10进制
    2 >>> oct(10)
    3 '0o12'

    7、hex

    1 #0x表示16进制
    2 >>> hex(10)
    3 '0xa'

    8、bytes

    #将字符转换成字节
    >>> bytes("你好世界",encoding="utf-8")
    b'xe4xbdxa0xe5xa5xbdxe4xb8x96xe7x95x8c'

    9、str

    #将字节转换成字符串
    >>> str(b'xe4xbdxa0xe5xa5xbdxe4xb8x96xe7x95x8c',encoding="utf-8")  
    '你好世界'

    10、callable

    1 >>> import tab
    2 >>> def foo():
    3 ...     print("allright")
    4 ... 
    5 #判断示例函数可否被调用
    6 >>> callable(foo)
    7 True

    11、chr

    1 #常用大写字母 ascii A-Z uncode 65-90
    2 #常用小写字母 ascii a-z uncode 97-122
    3 #常用数字 ascii 0-9  uncode 48-57
    4 >>> chr(65)
    5 'A'
    6 >>> chr(90)
    7 'Z'

    12、ord()

    1 #常用大写字母 ascii A-Z uncode 65-90
    2 #常用小写字母 ascii a-z uncode 97-122
    3 #常用数字 ascii 0-9  uncode 48-57
    4 >>> ord("A")
    5 65
    6 >>> ord("Z")
    7 90

    13、random()

    1 >>>import random
    2 #在指定的范围内产生随机数
    3 >>> random.randrange(20,40)
    4 29
    5 >>> random.randrange(20,40)
    6 37

    14、compile()

     1 >>> string="print(123)"
     2 #将字符串编译成Python代码(后面为固定格式)
     3 #编译格式"exec"(编译成Python代码)、"eval"(编译成表达式)、"single"(通常为当行程序)
     4 >>> result=compile(string,"<string>","exec")
     5 >>> print(string)
     6 print(123)
     7 >>> print(result)
     8 <code object <module> at 0x7fd1ee9aa660, file "<string>", line 1>
     9 #编译成Python代码后使用exec执行
    10 >>> exec(result)
    11 123
    12 #编译成Python代码后使用eval执行
    13 >>> eval(result)
    14 123

    15、eval()

    1 #与exec的区别在与eval有返回值
    2 #eval() arg 1 must be a string, bytes or code object
    3 >>> result=eval("8*8")
    4 >>> print(result)
    5 64

    16、dir()

    1 #获取str可以的使用的方法
    2 >>> print(dir(str))
    3 ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__' ****** 'title', 'translate', 'upper', 'zfill']
    4  

    17、help()

     1 #获取字符串replace的用法
     2 >>> help(str.replace)
     3 
     4 Help on method_descriptor:
     5 
     6 replace(...)
     7     S.replace(old, new[, count]) -> str
     8     
     9     Return a copy of S with all occurrences of substring
    10     old replaced by new.  If the optional argument count is
    11     given, only the first count occurrences are replaced.
    12 
    13 #使用q退出

    18、divmod()

    1 #获取余数(除数,被除数)
    2 >>> ret1,ret2=divmod(100,10)
    3 >>> print(ret1,ret2)
    4 10 0

    19、isinstance()

    1 >>> string="yorick"
    2 #判断对象是谁的实例是否为真
    3 #判断string是不是一个字符串
    4 >>> isinstance(string,str)
    5 True

    20、filter()

     1 >>> def foo(arg):
     2 ...     if arg > 22:
     3 ...         return True
     4 ... 
     5 >>> n_list=[11,22,33,44,55]
     6 #函数返回值True,将元素添加到结果中
     7 >>> result=filter(foo,n_list)
     8 #python3.0经过调优,不直接将结果输出出来,防止操作的内容过多
     9 >>> print(result)
    10 <filter object at 0x7f76f259a4a8>
    11 >>> print(list(result))
    12 [33, 44, 55]
    13 
    14 #使用lambda表达式
    15 >>> n_list=[11,22,33,44,55]  
    16 >>> result = filter(lambda par: par > 22,n_list)
    17 >>> print(list(result))
    18 [33, 44, 55]

    21、map()

    >>> n_list=[11,22,33,44,55]                     
    >>> def foo(arg):
    ...     return arg + 100
    ... 
    #将返回的结果添加到result中组成一个列表
    >>> result = map(foo,n_list)
    >>> print(list(result))
    [111, 122, 133, 144, 155]
    
    >>> n_list=[11,22,33,44,55] 
    >>> def foo(arg):
    ...     return False
    ... 
    #将返回的结果添加到result中组成一个列表
    >>> result = map(foo,n_list)
    >>> print(list(result))     
    [False, False, False, False, False]

    22、float()

     1 >>> string="65.20"
     2 #将字符转换成浮点型
     3 >>> float(string)
     4 65.2
     5 >>> type(float(string))
     6 <class 'float'>
     7 >>> type(string)
     8 <class 'str'>
     9 
    10 >>> string=5
    11 >>> type(string)
    12 <class 'int'>
    13 #将整数型转换成浮点型
    14 >>> float(string)
    15 5.0
    16 >>> print(type(float(string)))
    17 <class 'float'>

    23、globals()、locals

    >>> def foo():          
    ...     n_list=[1234567]
    ...     print("This is Begin Globals".center(40,"-"))
    #打印全局变量
    ...     print(globals())                             
    ...     print("This is Begin locals".center(40,"-")) 
    #打印局部变量
    ...     print(locals())                              
    ... 
    >>> foo()
    ---------This is Begin Globals----------
    {'string': 5, 'tab': <module 'tab' from '/usr/local/python3.5/lib/python3.5/site-packages/tab.py'>, 'result': <map object at 0x7f76f259a550>, '__spec__': None, '__package__': None, 'n_list': [11, 22, 33, 44, 55], 'foo': <function foo at 0x7f76f256e9d8>, '__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__doc__': None}
    ----------This is Begin locals----------
    {'n_list': [1234567]}

    24、hash()

    1 #较多应用为字典的key值
    2 
    3 #获取单个字符的hash值
    4 >>> hash("a")
    5 -6417969680733924203
    6 
    7 #获取长度较长的hash值
    8 >>> hash("sssssssssssssssssssssssssssssssssssssssssssssssssssssss")
    9 1067091481945040275

    25、max()、min()、sum()

     1 #注意:必须为数字
     2 #max比较一个可迭代的序列中的最大值
     3 >>> max(11,222,3344,555)
     4 3344
     5 >>> max([11,2233,44,5566,664,23])
     6 5566
     7 
     8 #min比较一个可迭代的序列中的最小值
     9 >>> min(11,222,3344,555)         
    10 11
    11 >>> min([11,2233,44,5566,664,23])
    12 11
    13 
    14 #sum将一个可迭代的序列求和[不能再sum()语法中添加过多的对象]
    15 >>> sum((11,22,33,44))
    16 110
    17 >>> sum([11,22,33,44])
    18 110
    19 >>> sum({11,22,33,44})
    20 110

    26、pow

    1 >>> pow(2,10)
    2 1024
    3 >>> 2**10
    4 1024

    27、range()

     1 #默认起始位置为0
     2 >>> for i in range(10):
     3 ...     print(i)
     4 ... 
     5 0
     6 1
     7 2
     8 3
     9 4
    10 5
    11 6
    12 7
    13 8
    14 9

    28、reversed()

    1 >>> o_list=["11","22","33","44","55"]
    2 >>> o_list
    3 ['11', '22', '33', '44', '55']
    4 >>> n_list=reversed(o_list)
    5 >>> n_list
    6 <list_reverseiterator object at 0x7f76f259a630>
    7 >>> print(list(n_list))
    8 ['55', '44', '33', '22', '11']

    29、round()

    1 #5舍去
    2 >>> round(4.5)
    3 4
    4 #6入
    5 >>> round(4.6)
    6 5

    30、sorted()

    1 >>> o_list=["Eric","Yorick","Alex","Bill"]
    2 >>> o_list
    3 ['Eric', 'Yorick', 'Alex', 'Bill']
    4 >>> n_list=sorted(o_list)
    5 >>> n_list
    6 ['Alex', 'Bill', 'Eric', 'Yorick']

    31、type()

    1 #判断对象的类型
    2 >>> foo1="string"
    3 >>> foo2="123"
    4 >>> foo3=12345
    5 >>> foo4={1:"2015"}
    6 >>> type(foo1),type(foo2),type(foo3),type(foo4)
    7 (<class 'str'>, <class 'str'>, <class 'int'>, <class 'dict'>)

    32、zip()

    1 >>> list1=["Yorick","223123**12323123","xxx"]
    2 >>> list2=["is","123213*231231","oooo"]
    3 >>> list3=["God","89898989*898989","xxxxx"]
    4 #将不同元素的列表或元组(有序的)索引相同的组合成一个元祖,如果索引有差异则不显示
    5 >>> print(list(zip(list1,list2,list3)))
    6 [('Yorick', 'is', 'God'), ('223123**12323123', '123213*231231', '89898989*898989'), ('xxx', 'oooo', 'xxxxx')]

    二、装饰器

    def outer(func):
        def inner():
            print('log')
            return func()
        return inner
    
    @outer
    def f1():
        print('f1')
    
    @outer
    def f2():
        print('f2')
    
    @outer
    def f3():
        print('f3')
    #自动执行outer函数并且将其下面的函数名f1当做参数传递
    #将outer函数的返回值,重新赋值给f1
    def outer(func):
        def inner(*args,**kwargs):
            print('before')
            r = func(*args,**kwargs)#func==老的f1
            print('after')
            return r #获取f1的返回值
        return inner
    
    @outer
    def f1(*args,**kwargs):
        print('aaaa')
        return '是是是'
  • 相关阅读:
    Roads in the North
    Labyrinth
    英语写作(二)
    语法长难句笔记
    英语写作(一)
    MySQL笔记(二)
    MySQL笔记(一)
    Mybatis简单使用与配置
    Mybatis映射文件
    什么是serializable接口?
  • 原文地址:https://www.cnblogs.com/zhangkui/p/5558502.html
Copyright © 2020-2023  润新知