zoukankan      html  css  js  c++  java
  • Python开发【第五篇】内置函数

    abs()

    函数返回数字的绝对值

    __author__ = "Tang"
    
    a = -30
    print(abs(a))# 30

    all()

    函数用于判断给定的可迭代参数iterable中的所有元素是否都为True,如果是则返回True,否则返回False

    如果iterable的所有元素不为0、''"、False或者iterable为空,all(iterable)返回True,否则返回False;注意 空列表 空元组 空字典 空字符串是True

    __author__ = "Tang"
    
    a = all([1,0])
    print(a) # False
    
    a = all([1,False])
    print(a) # False
    
    a = all(["",1])
    print(a) # False
    
    a = all([])
    print(a) # True
    
    a = all(())
    print(a) # True
    
    a = all({})
    print(a) # True
    
    a = ""
    print(all(a)) # True

    any() 

    函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。

    如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true

    __author__ = "Tang"
    
    a = any([1,0])
    print(a) # True
    
    a = any([1,False])
    print(a) # True
    
    a = any(["",1])
    print(a) # True
    
    a = any([])
    print(a) # False
    
    a = any(())
    print(a) # False
    
    a = any({})
    print(a) # False
    
    a=""
    print(any("")) # False

    basestring() 

    方法是 str 和 unicode 的超类(父类)可以用来判断一个对象是否为 str 或者 unicode 的实例,isinstance(obj, basestring) 等价于 isinstance(obj, (str, unicode))

    bin()  返回一个整数 int 的二进制表示

    __author__ = "Tang"
    
    a = 10
    print(bin(a)) # 0b1010
    
    a = 500
    print(bin(a)) # 0b111110100

    bool() 

    函数用于将给定参数转换为布尔类型,如果没有参数,返回 False

    __author__ = "Tang"
    
    # 为False的情况 七兄弟
    # () [] {} 0 False "" 空
    print(bool(())) # False
    print(bool([])) # False
    print(bool({}))# False
    print(bool(0))# False
    print(bool(False))# False
    print(bool(""))# False
    print(bool())# False
    
    print(bool(10)) # 其他情况都为True

    bytearray() 

    方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256

    __author__ = "Tang"
    
    a = bytearray()
    print(a) # bytearray(b'')
    
    a = bytearray([1,2,3]) 
    print(a)#bytearray(b'x01x02x03')

    callable()

     函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

    对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True

    chr()

    用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应ascii字符

    __author__ = "Tang"
    
    print(chr(97)) # a

    classmethod 

    修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等

    是类里面方法的语法糖,有property,staticmethod等

    __author__ = "Tang"
    
    class A(object):
        @classmethod
        def func1(self):
            print('foo')
    
    A.func1()  # foo

    cmp(x,y)

    Python3中已经不能使用该函数

    compile()

    函数将一个字符串编译为字节代码

    __author__ = "Tang"
    
    # compile() 函数将一个字符串编译为字节代码
    # compile(*args, **kwargs)
    str1 = "for i in range(1,10): print(i,end=' ')"
    a = (compile(str1,"","exec"))
    print(a) # <code object <module> at 0x02AFD758, file "", line 1>
    exec(a) # 1 2 3 4 5 6 7 8 9

    delattr(object,name) 

    函数用于删除属性

    __author__ = "Tang"
    
    class A:
        x = 20
    
    print(A.x) # 20
    delattr(A,"x")
    print(A.x) #报错

    dict() 

    函数用于创建一个字典 五星级别*****

    __author__ = "Tang"
    
    """
    class dict(**kwarg) # 键值对方式
    class dict(mapping, **kwarg) # 映射函数方式来构造字典
    class dict(iterable, **kwarg) # 可迭代对象方式来构造字典
    """
    
    a = dict(a='a',b='b',c='c')
    print(a) # {'a': 'a', 'b': 'b', 'c': 'c'}
    
    a = dict(zip([1,2,3,4,5],['a','b','c','d','e']))
    print(a) # {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
    
    a = dict([(1,'a'),(2,'b'),(3,'c'),(4,'d')])
    print(a) # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
    
    a = dict(((1,'a'),(2,'b'),(3,'c'),(4,'d'),))
    print(a) # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

    dir() 

    函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息

    __author__ = "Tang"
    
    """此方法在学习过程中非常有用,可用于查看类的方法"""
    
    print(dir())
    """
    ['__annotations__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
    """
    
    print(dir( [] ))
    """
    查看列表的方法
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
    """

    divmod()

    函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)

    __author__ = "Tang"
    
    print(divmod(9,3)) # (3, 0)
    
    a,b = divmod(5,2)
    print(a,b) # 2 1
    
    # 如果有一个参数是小数,那么结果都是小数
    a,b = divmod(10.0,3)
    print(a,b) # 3.0 1.0
    
    a,b = divmod(11,3.0)
    print(a,b) # 3.0 2.0

    enumerate()

    函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列

    __author__ = "Tang"
    
    """
    enumerate(sequence, [start=0]) 可以自定义start 开始下标
    返回两个参数,第一个为下标,第二个为值
    """
    
    a = ['tang','lao','er']
    for key,value in enumerate(a,10):
        print(key,value)
    """
    10 tang
    11 lao
    12 er
    """

     eval()

    函数用来执行一个字符串表达式,并返回表达式的值,可以说是一个计算器

    __author__ = "Tang"
    
    """
    eval(expression[, globals[, locals]])
    expression 表达式
    globals - 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象
    locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象
    """
    
    x = 2
    print(eval('3 * x')) # 6
    
    print(eval('2+2')) # 4
    
    print(eval('2**10')) # 1024

    execfile() 

    函数可以用来执行一个文件

    python3 中没有该函数 

    file()

    python3 中没有该函数

    filter() 

    函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表

    __author__ = "Tang"
    
    """
    该函数接收两个参数,第一个为函数,第二个为序列,
    序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中
    filter(function, iterable)
    """
    
    def test(n):
        return n%2
    li = filter(test,[i for i in range(10)])
    print(li) # <filter object at 0x00B132F0>
    print(list(li)) # [1, 3, 5, 7, 9]
    
    # 配合匿名函数
    li = filter(lambda x:x%2,[i for i in range(10)])
    print(li) # <filter object at 0x036232F0>
    print(list(li)) # [1, 3, 5, 7, 9]

    float() 

    函数用于将整数和字符串转换成浮点数,字符串是数字在里面才行,不然会报错

    __author__ = "Tang"
    
    a = 10
    print(float(a)) # 10.0
    
    a = -234
    print(float(a)) # -234.0
    
    a = "123"
    print(float(a)) # 123.0
    
    a = "123abc"
    print(float(a)) # 报错

    format()

    请看 字符串格式化篇

    frozenset()

    返回一个冻结的集合,冻结后集合不能再添加或删除任何元素

    __author__ = "Tang"
    
    """
    class frozenset([iterable])
    iterable 可迭代对象  能够被for循环的都是可迭代对象,也可以去重
    """
    
    a = frozenset(range(10))
    print(a) # frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
    print(list(a)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    a = frozenset("tanglaoer") # 2个a
    print(list(a)) # ['r', 'l', 'e', 'o', 'a', 't', 'g', 'n'] 一个a
    
    li = [1,2,3]
    li.append(4)
    print(li) # [1, 2, 3, 4]
    
    a.append(4) # 报错
    print (a)  # 报错

    getattr()

    函数用于返回一个对象属性值

    __author__ = "Tang"
    
    """
    getattr(object, name[, default])
    object 对象
    name 字符串,对象属性
    default 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError
    """
    class A:
        b = 12
    a = A()
    c = getattr(A,'b')
    print(c) # 12
    
    d = getattr(A,'z')
    print(d) # 报错 AttributeError: type object 'A' has no attribute 'z'

    globals() 

    函数会以字典类型返回当前位置的全部全局变量

    __author__ = "Tang"
    
    a = "tang"
    print(globals())
    
    """
    {   '__name__': '__main__',
        '__doc__': None,
        '__package__': None, 
        '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x009FC350>,
        '__spec__': None, 
        '__annotations__': {},
        '__builtins__': <module 'builtins' (built-in)>, 
        '__file__': 'F:/python_django/基础/内置函数.py', 
        '__cached__': None,
        '__author__': 'Tang',
        'a': 'tang'
    }
    """

    hasattr()

    函数用于判断对象是否包含对应的属性

    __author__ = "Tang"
    
    """
    hasattr(object, name)
    object 对象。
    name 字符串,属性名
    """
    class A:
        b = '10'
    a = A()
    print(hasattr(a,'b')) # True
    print(hasattr(a,'z')) # False

    hash()

    用于获取取一个对象(字符串或者数值等)的哈希值

    __author__ = "Tang"
    
    """
    hash(object)
    """
    print(hash("tang")) # 278126952
    print(hash(23)) # 23
    print(hash(str([1,2,3]))) # 716557122
    # print(hash([1,2,3])) # 报错

    help()

     函数用于查看函数或模块用途的详细说明

    __author__ = "Tang"
    
    """
    help([object])
    object 对象
    """
    print(help("os")) # 查看os模块的详细帮助信息
    # 输出内容太多了,我就不打印了

    hex()

    函数用于将10进制整数转换成16进制,以字符串形式表示

    __author__ = "Tang"
    
    print(hex(10)) # 0xa
    
    a = hex(17)
    print(a, type(a)) # 0x11 <class 'str'>

    id()

    函数用于获取对象的内存地址

    __author__ = "Tang"
    
    """
    在这里提一下,两个变量指向一个相同的不可变数据类型的数值时,它们的id是相同的,
    但是元组不一样,它们id是改变的,与列表一样
    """
    # int
    a  = 10
    print(id(a)) # 1368449952
    b  = 10
    print(id(b)) # 1368449952
    
    # str 字符串是不可变数据类型
    a = "tang"
    print(id(a)) # 17810368
    
    b = "tang"
    print(id(b)) # 17810368
    
    # 列表
    a = [1,2,3,4]
    print(id(a)) # 50262384
    
    b = [1,2,3,4]
    print(id(b)) # 50262344
    
    
    a = (1,2,3,4,)
    print(id(a)) # 6564096
    
    b = (1,2,3,4,)
    print(id(b)) # 6631664

    input()

     函数接受一个标准输入数据,返回为 string 类型

    __author__ = "Tang"
    
    a = input('请输入:')
    print(a,type(a))

    int()

    函数用于将一个字符串或数字转换为整型

    __author__ = "Tang"
    
    """
    class int(x, base=10)
    x 字符串或数字
    base 进制数,默认按十进制
    """
    a = "123"
    print(int(a))  # 123
    
    # a = "abc123"
    # print(int(a)) # 报错
    
    a = 3.6
    print(int(a))  # 3
    
    a = '0xa'
    print(int(a, base=16)) # 10
    
    a = '10'
    print(int(a,base=8)) # 8

    isinstance()

     函数来判断一个对象是否是一个已知的类型,类似 type()

    __author__ = "Tang"
    
    """
    isinstance() 与 type() 区别:
    type() 不会认为子类是一种父类类型,不考虑继承关系。
    isinstance() 会认为子类是一种父类类型,考虑继承关系。
    如果要判断两个类型是否相同推荐使用 isinstance()。
    
    isinstance(object, classinfo)
    object 实例对象。
    classinfo 可以是直接或间接类名、基本类型或者由它们组成的元组
    """
    
    a = 10
    print(isinstance(a,int)) # True
    
    
    class A:
        pass
    
    class B(A):
        pass
    obj = B()
    print(isinstance(obj,A)) #True
    print(isinstance(obj,B)) #True

    issubclass()

    方法用于判断参数 class 是否是类型参数 classinfo 的子类

    __author__ = "Tang"
    
    """
    issubclass(class, classinfo)
    class 类。
    classinfo 类
    """
    class A:
        pass
    class B(A):
        pass
    print(issubclass(A,B)) # False
    print(issubclass(B,A)) # True

    iter() 

    函数用来生成迭代器

    __author__ = "Tang"
    
    """
    iter(object[, sentinel])
    object 支持迭代的集合对象。
    sentinel 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),
    此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object
    """
    
    li = [1,2,3]
    for i in iter(li):
        print(i,end=" ") # 1 2 3
    
    l = ['a','b','c','d']
    def test():
        return l.pop()
    it = iter(test,'z') # 无穷执行test() 直到test结果等于'z'
    print(it.__next__()) # d
    print(it.__next__()) # c
    print(it.__next__()) # b
    print(it.__next__()) # a
    print(it.__next__()) # IndexError: pop from empty list

    len()

    方法返回对象(字符、列表、元组等)长度或项目个数

    __author__ = "Tang"
    
    """
    len( s )
    s -- 对象
    """
    s = "tang"
    print(len(s)) # 4
    
    a = [1,2,3,4]
    print(len(a)) # 4

    list() 

    方法用于将对象转换为列表

    __author__ = "Tang"
    
    # 字符串转换
    a = "tang"
    print(list(a)) # ['t', 'a', 'n', 'g']
    
    # a = 123
    # print(list(a)) # 报错
    
    a = (1,2,3,)
    print(list(a)) # [1, 2, 3]

    locals()

     函数会以字典类型返回当前位置的全部局部变量

    对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True

    __author__ = "Tang"
    
    def test():
        a = 1
        print(locals()) # {'a': 1}
        print(globals())
        """
        {
        '__name__': '__main__', 
        '__doc__': None, 
        '__package__': None, 
        '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00E3C350>, 
        '__spec__': None, 
        '__annotations__': {}, 
        '__builtins__': <module 'builtins' (built-in)>, 
        '__file__': 'F:/python_django/基础/内置函数.py', 
        '__cached__': None, 
        '__author__': 'Tang', 
        'test': <function test at 0x002BB618>}
        """
    test()

    long()

    python3 已经没有该函数

    map() 

    会根据提供的函数对指定序列做映射。

    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表

    __author__ = "Tang"
    
    """
    map(function, iterable, ...)
    function  函数,有一个参数
    iterable 一个或多个序列
    """
    def test(a):
        return a**2
    li = [1,2,3,4]
    print(map(test,li)) # <map object at 0x017432F0>
    print(list(map(test,li))) # [1, 4, 9, 16]
    
    # 结合lambda表达式
    a = map(lambda a:a**2,[i for i in range(10)])
    print(list(a)) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

    max()

    方法返回给定参数的最大值,参数可以为序列

    __author__ = "Tang"
    
    """
    max( x, y, z, .... )
    """
    a = [1,2,3,4]
    print(max(a)) # 4
    
    
    a = (1,2,3,4)
    print(max(a)) # 4

    memoryview() 

    函数返回给定参数的内存查看对象(Momory view)。

    所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问

    __author__ = "Tang"
    
    """
    memoryview(obj)
    """
    
    v = memoryview(bytearray("tang",'utf-8'))
    print(v[1]) # 97
    
    print(v[0]) # 116
    print(chr(v[0])) # t

    min()

    方法返回给定参数的最小值,参数可以为序列

    __author__ = "Tang"
    
    a = [1,2,3]
    print(min(a)) # 1

    next() 

    返回迭代器的下一个项目

    __author__ = "Tang"
    
    """
    next(iterator[, default])
    iterator 可迭代对象
    default 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常
    """
    li = [1,2,3,4]
    # print(next(li)) # TypeError: 'list' object is not an iterator
    
    # 先转换为可迭代对象
    li = iter(li)
    print(next(li)) #  1
    print(next(li)) #  2
    print(next(li)) #  3
    print(next(li,80)) #  4
    print(next(li,90)) #  90 不然就报错

    oct()

    函数将一个整数转换成8进制字符串

    __author__ = "Tang"
    
    a = 10
    t = oct(a)
    print(a,t,type(t)) # 10 0o12 <class 'str'>

    open()

    函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写

    __author__ = "Tang"
    
    """
    open(name[, mode[, buffering]])
    name : 一个包含了你要访问的文件名称的字符串值。
    mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
    buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认
    
    
    r    以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    r+    打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+    以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    w    打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb    以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    w+    打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb+    以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    a    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
    """
    
    """
    file 对象方法
    file.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)
    file.readline() 返回一行
    file.readlines([size]) 返回包含size行的列表,size 未指定则返回全部行
    for line in f: print line #通过迭代器访问
    f.write("hello
    ") #如果要写入字符串以外的数据,先将他转换为字符串.
    f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
    f.seek(偏移量,[起始位置]) 用来移动文件指针.
    偏移量:单位:比特,可正可负
    起始位置:0-文件头,默认值;1-当前位置;2-文件尾
    f.close() 关闭文件
    """
    
    
    # 有一个文件aa.txt
    """
    tanglao
    er
    """
    f = open("aa.txt")
    f.read() #tanglao
    er
    

    ord()

    函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,

    它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常

    __author__ = "Tang"
    
    print(ord('a')) # 97

    pow() 

    方法返回 xy(x的y次方) 的值

    __author__ = "Tang"
    
    print(pow(2,2)) # 4
    
    print(pow(10,2)) # 100

    print()

     方法用于打印输出,最常见的一个函数

    __author__ = "Tang"
    
    """
    print(*objects, sep=' ', end='
    ', file=sys.stdout)
    objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
    sep -- 用来间隔多个对象,默认值是一个空格。
    end -- 用来设定以什么结尾。默认值是换行符 
    ,我们可以换成其他字符串。
    file -- 要写入的文件对象。
    """
    
    a = "tanglaoer"
    b = "chenlaosan"
    print(a,b) # tanglaoer chenlaosan
    print(a,b,sep='*') #tanglaoer*chenlaosan
    
    a = [1,2,3,4]
    for i in a:
        print(i)
    """
    1
    2
    3
    4
    """
    for i in a:
        print(i,end=" ") #1 2 3 4 

    property() 

    函数的作用是在新式类中返回属性值

    __author__ = "Tang"
    
    """
    class property([fget[, fset[, fdel[, doc]]]])
    fget -- 获取属性值的函数
    fset -- 设置属性值的函数
    fdel -- 删除属性值函数
    doc -- 属性描述信息
    """
    class A:
        def test(self):
            print('tang')
    a = A()
    a.test() # tang   注意:这里有括号 是函数
    
    class B:
        @property
        def test(self):
            print('laoer')
    b = B()
    b.test # 老二 注意:这里没有括号 是属性

    range()

    函数可创建一个整数列表,一般用在 for 循环中

    __author__ = "Tang"
    
    """
    range(start, stop[, step])
    start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
    """
    
    a = range(10)
    print(a) # range(0, 10)
    print(list(a)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    a = range(2,10,2)
    print(list(a)) # [2, 4, 6, 8]

    reduce() 

    函数会对参数序列中元素进行累积。

    函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果

    __author__ = "Tang"
    
    """
    reduce(function, iterable[, initializer])
    function -- 函数,有两个参数
    iterable -- 可迭代对象
    initializer -- 可选,初始参数
    """
    from functools import reduce
    
    def test(a,b):
        return  a+ b
    b = [1,2,3,4,5,6,7]
    a = reduce(test,b)
    print(a) # 28
    
    # 配合lambda
    a = reduce(lambda x,y:x+y,b)
    print(a) # 28
    
    """
    顺便问一道题:用一句话打印1~100的和?
    """
    print(sum(range(101))) # 5050

    reload() 

    用于重新载入之前载入的模块 没啥用啦

    __author__ = "Tang"
    
    """
    reload(module)
    module -- 模块对象
    """
    
    import sys
    from imp import reload

    repr()

    函数将对象转化为供解释器读取的形式

    __author__ = "Tang"
    
    s = "tanglaoer"
    print(s) # tanglaoer
    print(repr(s)) # 'tanglaoer'

    reverse()

    函数用于反向列表中元素

    __author__ = "Tang"
    
    """
    list.reverse() 无返回值
    """
    a = [1,2,3,4]
    print(a.reverse()) #None
    print(a) # [4, 3, 2, 1]

     round()

    方法返回浮点数x的四舍五入值

    __author__ = "Tang"
    
    a = 3.4
    print(round(a)) # 3
    
    a = 3.6
    print(round(a)) # 4

    set() 

    函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等

    __author__ = "Tang"
    
    """
    class set([iterable])
    """
    x = set([1,2,3])
    print(x) # {1, 2, 3}
    
    x = set("tanglao") # 无重复的集合
    print(x) # {'a', 'n', 't', 'g', 'o', 'l'}

    setattr()

    函数对应函数 getatt(),用于设置属性值,该属性必须存在

    __author__ = "Tang"
    
    """
    setattr(object, name, value)
    object -- 对象。
    name -- 字符串,对象属性。
    value -- 属性值
    """
    
    class A:
        b = 1
    
    a = A()
    print(getattr(a,'b'))
    
    setattr(a,'c',5)
    print(a.c) # 5

    slice()

     函数实现切片对象,主要用在切片操作函数里的参数传递

    __author__ = "Tang"
    
    """
    class slice(stop)
    class slice(start, stop[, step])
    start -- 起始位置
    stop -- 结束位置
    step -- 间距
    
    返回值:
    返回一个切片对象
    """
    
    myslice = slice(3) # 设置截取5个元素的切片
    a = [1,2,3,4,5,6]
    print(a[myslice]) # [1, 2, 3]

    sorted() 

    函数对所有可迭代的对象进行排序操作

    __author__ = "Tang"
    
    """
    sort 与 sorted 区别:
    1.sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
    2.list 的 sort 方法返回的是对已经存在的列表进行操作,
    而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作
    """
    a = [1,5,87,3,5,8,0]
    print(a) # [1, 5, 87, 3, 5, 8, 0]
    b = a.sort()
    print(b) # None
    print(a) # [0, 1, 3, 5, 5, 8, 87]
    
    a = [1,5,87,3,5,8,0]
    print(a) # [1, 5, 87, 3, 5, 8, 0]
    b = sorted(a)
    print(b) # [0, 1, 3, 5, 5, 8, 87]
    print(a) # [1, 5, 87, 3, 5, 8, 0]
    
    """
    也就是说 sort() 是在原有列表的基础上修改,并没有返回值,
    而sorted() 返回一个排好序的列表,原列表并没有修改
    """

    staticmethod()

    返回函数的静态方法。该方法不强制要求传递参数

    __author__ = "Tang"
    
    """
    staticmethod(function)
    """
    
    class C:
        @staticmethod
        def f():
            print("我是静态方法 我没有self")
    
        def t(self):
            print("我是标准方法 我有self")
    C.f()
    c = C()
    c.f()
    
    # C.t()# 报错
    c = C()
    c.t()
    """
    类与实例都可以调用静态方法
    注意:静态方法并没有参数 self 或者 cls,请与标准函数进行比较
    """

    str()

    字符串函数

    __author__ = "Tang"
    
    a = 123
    print(a,type(a)) # 123 <class 'int'>
    
    a = 123
    a = str(a)
    print(a,type(a)) # 123 <class 'str'>

    sum()

     方法对系列进行求和计算

    __author__ = "Tang"
    
    """
    sum(iterable[, start])
    iterable -- 可迭代对象,如:列表、元组、集合。
    start -- 指定相加的参数,如果没有设置这个值,默认为0
    """
    a = [1,2,3,4]
    print(sum(a)) # 10
    
    print(sum(a,10)) # 20
    
    # 面试题 用一句话打印出1~100的和
    print(sum(range(101))) # 5050

    super() 

    函数是用于调用父类(超类)的一个方法。

    super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

    MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表

    __author__ = "Tang"
    
    """
    super(type[, object-or-type])
    type -- 类。
    object-or-type -- 类,一般是 self
    """
    
    class A():
        def tt(self):
            print("我是父类的tt")
            return
    class B(A):
        def tt(self):
            super().tt() # 调用父类函数
            print("我是子类的tt")
    
    b = B()
    b.tt()
    """
    我是父类的tt
    我是子类的tt
    """

    tuple()

    函数将列表转换为元组

    __author__ = "Tang"
    
    a = [1,2,3,4]
    b = tuple(a)
    print(b) # (1, 2, 3, 4)

    type()

    函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象

    __author__ = "Tang"
    
    """
    isinstance() 与 type() 区别:
    type() 不会认为子类是一种父类类型,不考虑继承关系。
    isinstance() 会认为子类是一种父类类型,考虑继承关系。
    如果要判断两个类型是否相同推荐使用 isinstance()。
    
    type(name, bases, dict)
    name -- 类的名称。
    bases -- 基类的元组。
    dict -- 字典,类内定义的命名空间变量。
    返回值
    一个参数就返回对象类型, 
    如果是三个参数,那么就返回新的类型对象
    """
    
    print(type(1)) # <class 'int'>
    
    print(type([1,2,3])) # <class 'list'>
    
    # 创建一个类
    x = type('X',(object,),dict(a=1))
    
    print(x) # <class '__main__.X'>
    obj = x()
    print(obj.a) # 1

    zip() 

    函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表

    在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。

    __author__ = "Tang"
    """
    zip([iterable, ...])
    iterabl -- 一个或多个迭代器;
    
    返回值:
    返回元组列表。
    """
    
    a = [1,2,3,4,5]
    b = ['a','b','c','d']
    print(zip(a,b)) # <zip object at 0x00E7F6E8>
    print(list(zip(a,b))) # [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
    
    a = (1,2,3,4,5)
    b = ('a','b','c','d')
    print(zip(a,b)) # <zip object at 0x00E7F6E8>
    print(list(zip(a,b))) # [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
    
    
    
    # 当只有一个参数时
    a = [1,2,3,4,5]
    print(list(zip(a))) # [(1,), (2,), (3,), (4,), (5,)]
    
    #  zip 和* 结合使用 反解压
    a = [1,2,3,4,5]
    b = ['a','b','c','d']
    tt = zip(a,b)
    
    x,y = zip(*tt)
    print(x,y)
    """
    (1, 2, 3, 4) 
    ('a', 'b', 'c', 'd')
    """

    __import__() 

    函数用于动态加载类和函数 。

    如果一个模块经常变化就可以使用 __import__() 来动态载入

    __author__ = "Tang"
    
    """"
    __import__(name, globals=None, locals=None, fromlist=(), level=0)
    """
    
    # 假如有一个a.py
    __import__("a") # 这就是导入a模块 相当于 用字符串的格式导入该模块
  • 相关阅读:
    PHP javascript cookie
    angular.js初探
    熟悉陌生框架或代码, 产品设计小结
    question2answer论坛框架分析及web开发思考
    一个很好用的系统管理的命令lsof(转载)
    Linux nc命令用法收集
    Linux IO实时监控iostat命令详解(转载)
    AIX中查找端口号和进程
    bash之局部变量与子shell(转载)
    Linux下产生随机密码10方法
  • 原文地址:https://www.cnblogs.com/tangkaishou/p/9495473.html
Copyright © 2011-2022 走看看