zoukankan      html  css  js  c++  java
  • python 内建函数

    1、标识 id
      返回对象的唯一标识,CPython返回内存地址

    2、哈希hash()
      返回一个对象的哈希值

    3、类型type()
      返回对象的类型

    print(type(1),type(int),type(type),type([]),type('abc'),type(list))    #返回 type——> class
    
    执行结果:
    <class 'int'> <class 'type'> <class 'type'> <class 'list'> <class 'str'> <class 'type'>

    4、类型转换
      float() int() bin() hex() oct() bool() list() tuple() dict() set() complex() bytes() bytearray()

    5、输入input([prompt])
      接收用户输入,返回一个字符串

    6、打印print(*objects, sep=' ', end=' ', file=sys.stdout, flush=False)
      打印输出默认使用空格分割,换行结尾,输出到控制台
      FD(文件描述符):0(stdin:标准输入)    1(stdout:标准输出)    2(标准错误输出)

    7、对象长度len(s)
      返回一个集合类型的元素个数

    8、isinstance(obj, class_or_tuple)
      判断对象obj是否属于某种类型或者元组中列出的某个类型

    print(isinstance(True, int))
    print(isinstance(123, (bool, str, int)))
    
    执行结果:
    True
    True

    9、issubclass(cls, class_or_tuple)
      判断类型cls是否是某种类型的子类或元组中列出的某个类型的子类

    print(issubclass(bool, int))    # bool 是 int 的子类(继承关系)
    
    执行结果:
    True


    10、绝对值abs(x) x为数值
      最大值max()最小值min()
      返回可迭代对象中最大或最小值
      返回多个参数中最大或最小值

    11、round(x)四舍六入五取偶,round(-0.5)

    print(round(1.4),round(1.5),round(1.6))
    
    执行结果:
    print(round(1.4),round(1.5),round(1.6))

    12、pow(x, y)等价于x**y

    13、range(stop)从0开始到stop-1的可迭代对象;range(start, stop[, step])从start开始到stop-1结束步长为step的可迭代对象

    14、divmod(x, y)等价于tuple (x//y, x%y)

    print(divmod(5,2))    # (5//2, 5%2)
    
    执行结果:
    (2, 1)


    15、sum(iterable[, start]) 对可迭代对象的所有数值元素求和

    # sum = 1    sum不是关键字keyword,请不要这样指定
    print(sum(range(5)))
    print(sum(range(5), 10))
    #print(sum({range(5)}))    # 错误,请使用sum(set(range(5))
    
    执行结果:
    10
    20

    16、chr(i)给一一个一定范围的整数返回对应的字符

    17、ord(c)返回字符对应的整数,返回的是Unicode

    print(chr(65),chr(0x41))
    print(ord('A'),hex(ord('A')))    # unicode
    
    执行结果:
    A A
    65 0x41

    18、str()、repr()、 ascii()

    # 字符串强制类型转换,获取一个对象的字符串表达形式
    print(str(range(10)),str(list()))
    
    执行结果:
    range(0, 10) []

    19、sorted(iterable[, key][ reverse])排序
      立即返回一个新的列表,默认升序
      reverse是反转

    lst = list(range(10))
    lst.sort(reverse=True)    # 默认升序,reverse=True:反转
    print(lst)
    
    执行结果:
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    lst = list(range(10))
    print(sorted(lst))        # 立即返回一个新的列表,其中待排序数据必须能够比较大小
    print(sorted(lst,reverse=True))
    
    执行结果:
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    '''
    为了解决不同类型之间非要排序问题,提供了一个参数 key,key是函数,这个函数可以把元素强制
    装换为你指定的类型,但转换后的结果只是用来比较大小的,不改变最后生成的列表中的元素本身
    '''
    lst = list(range(10))
    newlist = lst + ['1']
    print(newlist)
    #sorted(newlist)    # TypeError: '<' not supported between instances of 'str' and 'int'
    print(sorted(newlist, key=int))
    print(sorted(newlist + ['a', 'b'], key=str, reverse=True))
    
    执行结果:
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '1']
    [0, 1, '1', 2, 3, 4, 5, 6, 7, 8, 9]
    ['b', 'a', 9, 8, 7, 6, 5, 4, 3, 2, 1, '1', 0]
    lst = list(range(10))
    newlist = lst + ['1']
    print(sorted({x:100 for x in newlist}, key=str))
    print(sorted({str(x):100 for x in newlist}))    #覆盖:1
    print(sorted({x:100 for x in newlist}, key=int))
    
    执行结果:
    [0, 1, '1', 2, 3, 4, 5, 6, 7, 8, 9]
    ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
    [0, 1, '1', 2, 3, 4, 5, 6, 7, 8, 9]


    20、翻转reversed(seq)
      返回一个翻转元素的迭代器

    print(list(reversed("13579")))
    #reversed(set(range(10)))    # 无序的不能倒转
    #{reversed((2, 4))}          # 应使用 set(reversed((2, 4)))
    for x in reversed(['c','b','a']):
        print(x)
    print(reversed(sorted({1, 5, 9})))    # 迭代器,惰性的
    
    执行结果:
    ['9', '7', '5', '3', '1']
    a
    b
    c
    <list_reverseiterator object at 0x0000012FE07E38C8>


    21、枚举enumerate(seq, start=0)
      迭代一个序列,返回索引数字和元素构成的二元组
      start表示索引开始的数字,默认是0

    for x in enumerate([2,4,6,8]):
        print(x)
    
    for x in enumerate("abcde"):
        print(x,end=" ")
    
    执行结果:
    (0, 2)
    (1, 4)
    (2, 6)
    (3, 8)
    (0, 'a') (1, 'b') (2, 'c') (3, 'd') (4, 'e') 


    22、迭代器和取元素iter(iterable)、next(iterator[, default])
      iter将一个可迭代对象封装成一个迭代器
      next对一一个迭代器取下一个元素,如果全部元素都取过了,再次next会抛Stoplteration异常

    g = iter(range(5))
    print(g)
    print(next(g))
    print(next(g))
    
    执行结果:
    <range_iterator object at 0x000002A9B2819350>
    0
    1


    23、可迭代对象
      能够通过迭代一次次返回不同的元素的对象
        所谓相同,不是指值是否相同,而是元素在容器中是否是同一个,例如列表中值可以重复的,['a', 'a'],虽然这个列表有2个元素,值一样,但是两个'a'是不同的元素,因为有不同的索引
      可以迭代,但是未必有序,未必可索引
      可迭代对象有:list、tuple、string、bytes、bytearray、range对象、set、dict、生成器、迭代器等
      可以使用成员操作符in、not in、in本质上对于线性结构就是在遍历对象,非线性结构求hash

    print(3 in range(10))
    print(3 in (x for x in range(10)))
    print(3 in {x:y for x,y in zip(range(4),range(4,10))})
    
    执行结果:
    True
    True
    True

    24、迭代器
      特殊的对象,一定是可迭代对象,具备可迭代对象的特征
      通过iter方法把一个可迭代对象封装成迭代器
      通过next方法,迭代迭代器对象
      生成器对象,就是迭代器对象

    for i in iter(range(3)):
        print(i)
    
    g = (x for x in range(5))
    print(type(g))
    print(next(g))
    print(next(g))
    
    执行结果:
    0
    1
    2
    <class 'generator'>
    0
    1

    25、拉链函数 zip(*iterables)
      像拉链一样,把多个可迭代对象合并在一起,返回一个迭代器
      将每次从不同对象中取到的元素合并成一个元组

    print(list(zip(range(5), range(5))))
    print(list(zip(range(5),range(3),range(4))))    #木桶效应
    print(dict(zip(range(3),range(3))))
    print({str(x):y for x,y in zip(range(10),range(10))})

    执行结果:
    [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
    [(0, 0, 0), (1, 1, 1), (2, 2, 2)]
    {0: 0, 1: 1, 2: 2}
    {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

    26、all(iterable)
    可迭代对象所有元素都要等效为True,或空的可迭代对象,all函数返回True
    一旦可迭代对象有一个元素等效为False,all函数返回False

    27、any(iterable)
    可迭代对象任意一个元素等效为True,any函数返回True
    空可迭代对象或所有元素都等效False,any函数返回False

    lst= [True, {1}, [2, 3], 5.1, 'abc']
    print(all(lst), any(lst))
    print(all([]), any([]))
    print(all(lst + [0]), any(lst + [0]))
    
    执行结果:
    True True
    True False
    False True
  • 相关阅读:
    jquery-4 完整表单验证实例
    从程序员的角度分析微信小程序(编程语言:用到什么学什么)
    微信程序开发
    css3-4 css3边框样式
    css3-3 css3背景样式
    boxfilter 实现
    opencv在arm和x86在移植
    PAT 1033. To Fill or Not to Fill (贪婪)
    [git] fatal: This operation must be run in a work tree
    spring与mybatis集成和事务控制
  • 原文地址:https://www.cnblogs.com/zyybky/p/12667971.html
Copyright © 2011-2022 走看看