zoukankan      html  css  js  c++  java
  • 内置函数

    >>> import builtins
    >>> dir(builtins)

    [..., 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']

    abs 绝对值

    数据类型转换

    >>> int('123')  
    123

    >>> float('3.14')   
    3.14
    >>> str(12)
    '12'
    >>> bool(10)
    True

    eval() 函数用来执行一个字符串表达式,并返回表达式的值
     例如: 把一个字符串转化成列表

    >>> a="[{'k1':'v1'},{'k2':'v2'}]"
    >>> eval(a)
    [{'k1': 'v1'}, {'k2': 'v2'}]
    >>> type(eval(a))
    <class 'list'>

     type()  获取数据类型

    >>> type(111)      # int类型
    <class 'int'>
    >>> type(11.11)   # float类型
    <class 'float'>
    >>> type('hello')   # str 类型
    <class 'str'>
    >>> type(['a','b'])   #list类型
    <class 'list'>
    >>> type(('a','b','c'))  #tuple类型
    <class 'tuple'>
    >>> type({'k':1,'v':2})  #dict类型
    <class 'dict'>
    >>> type(range(10))  #range类型
    <class 'range'>

    isinstance()  判断数据类型

       第一个参数是待确定类型的数据, 第二个参数是指定一个数据类型, 若数据类型匹配, 返回 True, 否则返回False

    >>> isinstance('111',int)
    False
    >>> isinstance([11,22],list)
    True
    >>> isinstance(range(5),range)
    True
    >>> isinstance('test',(int,str,list))  # 是元祖中的一个 返回true
    True

    判断一个对象是否是可迭代对象

    >>> from collections import Iterable
    >>> isinstance('abc',Iterable)    #字符串可以迭代
    True
    >>> isinstance(1234,Iterable)   #整数不能迭代
    False

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

    >>> input("please input a num: ")
    please input a num: 12
    '12'
    >>> int(input("please input a num: "))  # 通过int把str转换成int
    please input a num: 12
    12

    enumerate  把一个list变成索引-元素对

    >>> for i,value in enumerate(['a','b','c']):
    ...      print(i,value)
    ... 
    0 a
    1 b
    2 c
    >>> for i,value in enumerate(('a','b','c'),1):   #索引以1开始
    ...      print(i,value)  
    ... 
    1 a
    2 b
    3 c

    all(iterable)   所有元素为True时(或者iterable为空时)返回True,否则False 

    # all(iterable)   所有元素为True时(或者iterable为空时)返回True,否则False 
    # iterable--元祖或列表 
    # interable 为False的情况包含有None,0,False,'' 
    >>> all([1,2,3])
    True
    >>> all(['',1,2,3])
    False
    >>> all([None,1,2])
    False
    >>> all([0,1,2])
    False
    >>> all([])
    True
    >>> all(())
    True
    # 注意空列表 空元祖返回值为True
    

    any()   any(iterable)  只要有一个元素为True时,就返回True。否则False(iterable为空时也是)

    # iterable--元祖或列表
    >>> any([0,None,'',False])
    False
    >>> any([0,None,'',False,1])  # 有一个为True 结果为True
    True
    >>> any([])
    False
    >>> any(())
    False
    # 空列表,空元祖返回False

    ascii(object)  返回一个表示对象的字符串

    >>> ascii('aaa')
    "'aaa'"
    >>> ascii('函数')
    "'\u51fd\u6570'"

     bin(x)  返回整数的二进制表示

    # x为int 或者long int
    >>> bin(10)
    '0b1010'
    >>> bin(2)
    '0b10'

    callable() 检查一个对象是否可调用。注意:如果返回True,仍可能调用失败,但如果返回false,则一定不可调用

    #检查一个对象是否可调用。注意:如果返回True,仍可能调用失败,但如果返回false,则一定不可调用
    
    >>> def name():
    ...     print('hello') 
    >>> callable(name)    #函数返回True
    True
    
    # 类可被调用,如果类里含有__call__方法,则实例也可被调用.例如:
    >>> class Test:
    ...     def met(self):
    ...         return 123 
    >>> callable(Test)   #类返回True
    True
    >>> t=Test()      
    >>> callable(t)  #Test类没有含__call__方法,实例t返回False
    False
    
    >>> class Test2:
    ...     def __call__(self):
    ...         return 123
    >>> callable(Test2)    #类返回True
    True
    >>> t2=Test2()   
    >>> callable(t2)  # Test2类有__call__方法,t2实例可以被调用
    True

    chr(i) i 参数表示一个0到1,114,111范围内的整数  返回相应字符 

    >>> chr(96)
    '`'
    >>> chr(257)
    'ā'
    >>> chr(1114111)
    'U0010ffff'
    
    chr(i)

    compile(source, filename, mode[, flags[, dont_inherit]])  将字符串编译为字节代码

    >>> a=compile('print("hello")','','exec')
    >>> a
    <code object <module> at 0x7f165b517930, file "", line 1>
    >>> exec(a)
    hello

    complex([real[,imag]])  返回值为real + imag*1j 的复数

    #返回值为real + imag*1j 的复数
    #real 可以为数字和字符串。 为字符串时,被解释成一个复数,则不需要imag
    #imag为数字
    
    >>> complex('1+j')  #real为字符串时,不需要imag,+两边不能空格
    (1+1j)
    >>> complex('2')
    (2+0j)
    >>> complex(2)    
    (2+0j)
    >>> complex(2,1)  
    (2+1j)

    高阶函数: 把函数当做一个参数传入

     map  根据提供的函数对指定序列作映射

    map(function, iterable, ...)  一个函数,一个或多个可迭代对象。函数依次作用于Iterable序列的每一个元素,并把结果作为一个Iterator返回

    >>> def func(x):
    ... return x**2
    ... 
    >>> r=map(func,[1,3,6,9])   #map(函数,可迭代对象)
    >>> isinstance(r,Iterator)      #返回一个Iterator 
    True
    >>> list(r)      #Iterator是惰性序列,通过list()函数让它把整个序列都计算出来并返回一个list。
    [1, 9, 36, 81]
    
    >>> list(map(lambda x,y:[x,y],[1,3,5,7,9],[2,4,6,8,10]))
    [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
    
    >>> res = map(lambda x,y:x*y,[1,3,5],[2,4,6])
    >>> for i in res:
    ...     print(i)    
    2
    12
    30
    >>> s=map(str,[1,2,3,4])
    >>> list(s)
    ['1','2','3','4']
    
    >>> def func(s):
    ... return s.title()
    ...
    >>> list(map(func,['adam', 'LISA', 'barT']))
    ['Adam', 'Lisa', 'Bart']
    
    >>> def func(x):           
    ...      d={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    ...      return d[x]  
    ... 
    >>> list(map(func,['1','2','3','4']))  
    [1, 2, 3, 4]

     filter    用于过滤序列。

      filter(function, iterable)   和map不同的是,filter会把传入的函数依次作用于每个元素。根据返回值是True或False选择保留或丢弃该元素。filter返回的是iterator类型。

    >>> list(filter(lambda x:x%2>0,range(1,10)))
    [1, 3, 5, 7, 9]                #Iterator是一个惰性序列,要用list()函数获得所有结果并返回list
    
    
    >>> def is_not_empty(s):
    ...     return s and len(s.strip()) > 0
    ... 
    >>> f = filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])
    >>> f
    <filter object at 0x7f7fb412a9e8>
    >>> list(f)
    ['test', 'str', 'END']

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

    reduce(function, iterable[, initializer])   第一个是函数(必须有两个参数),第二个是可迭代对象。reduce把结果继续和 iterable序列的下一个元素做累积计算

    >>> from functools import reduce
    >>> reduce(lambda x,y:x*y,[1,2,3,4])  #求列表的乘积
    24
    >>> reduce(lambda x,y:10*x+y ,[1,3,5,7,9])
    13579
    
    #执行过程
    # reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

    sorted  排序

    >>> k=['Bob', 'ada', 'Hoo', 'boby', 'Yoki']
    >>> sorted(k)
    ['Bob', 'Hoo', 'Yoki', 'ada', 'boby']
    >>> 
    >>> sorted(k,key=str.lower)    #key函数自定义排序
    ['ada', 'Bob', 'boby', 'Hoo', 'Yoki']
    
    >>> l=[24,19,-1,-10]
    >>> sorted(l,key=abs)
    [-1, -10, 19, 24]
    
    #sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,
    传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0 >>> sorted([36, 5, 12, 9, 21], reversed_cmp) [36, 21, 12, 9, 5]
  • 相关阅读:
    简单的自我介绍
    学习总结(北航助教陈彦吉)
    2019春季第十二周助教总结
    2019春季第十一周助教总结
    第十一周作业
    2019春季第十周助教总结
    2019春季第九周助教总结
    第九周作业
    2019春季第八周助教总结
    第八周作业
  • 原文地址:https://www.cnblogs.com/xiaobaozi-95/p/9009302.html
Copyright © 2011-2022 走看看