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

    内置函数

    内置函数补充


     all: 所有iterable类型,包含的元素要全为真才返回真

    >>> all([0,-1,5])
    False
    >>> all([-1,5])
    True

    any:有iterable类型,非空且包含任一为真element就返回true

    >>> any([])
    False
    >>> any([0])
    False
    >>> any([0,12])
    True

    ascii:

    >>> a = ascii([1,2,"中文"])   
    >>> print(type(a),[a])
    <class 'str'> ["[1, 2, '\u4e2d\u6587']"]
    >>> #把内存的数据转换为可打印的字符串格式

    bin:

    >>> bin(2)  #把十进制转换为二进制
    '0b10'
    >>> #convert an integer number to a binary string ,需要整数才能转
    #二进制转十进制
    >>> int('0b10',2)  #如果前面有标识进制数,后面不用加 base
    2
    >>> int('10',base=2)
    2
    >>> int('0x10',16)
    16
    >>> int('0o657',8)
    431
    >>> int('657',base=8)
    431
    >>> bin(431)
    '0b110101111'
    >>> oct(431)
    '0o657'
    >>> hex(431)
    '0x1af'
    >>> 
    2,8,16,10进制互转

    bool:判断真假

    >>> bool([])     
    False
    >>> bool(0)     
    False
    >>> bool([0,1])
    True

    bytes:转换为二进制格式

    >>> a = bytes("abcde",encoding='utf-8')
    >>> print(a.capitalize(),a)
    b'Abcde' b'abcde'
    >>> a[0]
    97
    >>> a[0] = 100    #当想修改它时会报错
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        a[0] = 100
    TypeError: 'bytes' object does not support item assignment
    >>> 

    bytearray:

    >>> b = bytearray("abcde",encoding='utf-8')
    >>> b[0]
    97
    >>> b[0] = 102
    >>> print(b)
    bytearray(b'fbcde')
    >>> #bytearray变成变成二进制列表的形式,并可以修改,很少用到

    callable:

    >>> print(callable([]))
    False
    >>> #判断是否可以调用,后面能加括号的就是能调用的,比如函数
    >>> def sayhi():
        pass
    >>> callable(sayhi())  #此时为函数运行结果,不能调用
    False
    >>> callable(sayhi) #注意此时函数为内存地址,可以调用
    True

    chr:

    >>> chr(87) #把Unicode中的数字对应的元素返回出来
    'W'

    ord:

    >> ord('a') #把元素返回为Unicode中对应的数字号码
    97

    compile:#compile(str,'err.log','exec or eval') 把字符串编译为可运行的代码

    >>> code = 'for i in range(2):print(i)'
    >>> compile(code,'','exec')
    <code object <module> at 0x000001C8899C89C0, file "", line 1>
    >>> exec(code)  #相当于import了这个模块,然后执行
    >>>>
    0
    1
    2

    dict:

    >>>dict() # 创建空字典 {} 
    >>> dict(a='a', b='b', t='t')             # 传入关键字 {'a': 'a', 'b': 'b', 't': 't'}
    >>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典 {'three': 3, 'two': 2, 'one': 1}
    >>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典 {'three': 3, 'two': 2, 'one': 1} >>>

    delattr :

    很重要,先跳过

    dir:

    >>> a = {}
    >>> dir(a)  #查可用方法
    ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
    >>> 

    divmod:

    divmod(5,2)  # 5除以2 并返回商和余数
    (2, 1)

    lambda: 匿名函数

    >>> x = lambda n:3 if n<3 else n
    >>> x(7)  #>>> x(2) 输出为 3
    7

    >>>aaa = lambda x,y:x+y
    >>>print(aaa(1,2)) #定义了几个参数就传几个参数和函数一样
    3

    format:

    实例
    >>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
    'hello world'
     
    >>> "{0} {1}".format("hello", "world")  # 设置指定位置
    'hello world'
     
    >>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
    'world hello world'
    也可以设置参数:
    
    实例
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
     
    # 通过字典设置参数
    site = {"name": "菜鸟教程", "url": "www.runoob.com"}
    print("网站名:{name}, 地址 {url}".format(**site))
     
    # 通过列表索引设置参数
    my_list = ['菜鸟教程', 'www.runoob.com']
    print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的
    format

    filter:过滤

    >>> res = filter(lambda n:n>5,range(10))     #filter(function,iterable),参数1为条件,参数2为可迭代类型
    >>> for i in res:
        print(i)
    
    6
    7
    8
    9
    >>> #在range(10)中过滤出大于5的元素

    map:   map(function,iterable),按照function的功能,对iterable进行操作

    >>> res2 = map(lambda n:n*n,range(3))
    >>> for i in res2:
        print(i)
    
    0
    1
    4
    >>> #map(function,iterable),按照function的功能,对iterable进行操作
    >>> #是个迭代器,要用for循环输出
    >>> #和列表生成式一样,区别是map是迭代器

    reduce : 在python3中不是内置函数,需要import  functools调用

    >>> import functools
    >>> res3 = functools.reduce(lambda x,y:x+y,range(10))
    >>> print(res3)
    45
    >>> #x为返回值,y为第一个数,执行x+y后,x变为x+y,y变为下一个数,从而得到从1加到10的值
    >>> #在python2.7中 reduce为内置函数,现在要用functools导入调用

    float:  将数字或者字符串,返回为浮点数

    >>> float(3)
    3.0
    >>> float('3.4')
    3.4

     globals(): 只打印全局变量   locals():打印局部变量

    >>> a = [1]
    >>> globals()
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': [1]}
    >>> globals().get('a')
    [1]
    >>> #golbals 变量名是key,变量值是value,返回当前程序所有的变量

    frozenset():

    >>> set1 = frozenset([1,4,4,3])
    >>> 不可变集合,用这个定义集合后,set1
    SyntaxError: invalid character in identifier
    >>> #不可变集合,用这个定义集合后,set1就不可变,pop,clear方法都没了

    hash():

    >>> hash('gkx')  #返回对象的哈希值
    -3746276222014687951
    >>> #可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。

    help(),hex(),int(),isinstance(),len(),list(),iter()

    >>> help(a.append)   #返回帮助信息
    Help on built-in function append:
    append(...) method of builtins.list instance
        L.append(object) -> None -- append object to end
    
    >>> hex(66)
    '0x42'
    >>> #转十六机制     bin()#转二进制   oct() #转八进制
    
    >>> id(a)
    1960805134216
    >>> #返回内存地址
    
    >>> int(3.4)  
    3
    >>> int('3')  #返回整数,注意'3.4'字符串如果时小数,返回会报错
    3
    
    >>> iter([]) #变为iterator
    <list_iterator object at 0x000001C889A4C908>
    
    >>> a = 'abc'
    >>> len(a)  #查询变量长度
    3
    >>> a = list()
    >>> #定义一个列表

     max()  min() : #1,比较的元素是可迭代对象,用for循环原理,如果第一个元素分出大小,后面就不会继续比较了。2.根据ASCII码值的大小比较

    >>> max([2,3,45])  #求最大值
    45
    >>> min([2,3,45])  #求最小值
    2

    next():

    >>> next(iter([1,2,3]))
    1
    >>> #返回迭代器的下一个元素

    pow():

    >>> pow(3,3)
    27
    >>> #返回3的3次方

    repr():

    >>> a = [1,2,3]
    >>> repr(a)
    '[1, 2, 3]'
    >>> #类似ascii,转为str

    round():

    >>> round(1.33333,2)
    1.33
    >>> #保留小数位,根据参数2.  默认是保留整数位

    slice(起始位置,终止位置,间距):  list的切片方法 【:】一模一样

    >>> d = 'abcde'
    >>> c = [1,2,3,4,5]
    >>> d[slice(1,2)]
    'b'
    >>> d[slice(4)]
    'abcd'
    >>> #切片
    >>> d = range(10)
    >>> d[slice(2,5)]
    range(2, 5)
    >>> #slice(起始位置,结束位置,间距)
    >>> d[2:5]
    range(2, 5)
    >>> 
    View Code

    sorted():

    >>> a = {1:2,3:6,7:11,-1:6}
    >>> sorted(a.items())  #默认用key排序
    [(-1, 6), (1, 2), (3, 6), (7, 11)]
    >>> sorted(a.items(),key=lambda x:x[1])  #用value排序,用到匿名函数
    [(1, 2), (3, 6), (-1, 6), (7, 11)]
    >>> 

    sum():求和

    >>> sum([1,2,3,4])
    10

    tuple(): 定义一个元组

    >>> a = tuple()
    >>> a
    ()

    zip():

    >>> cc = ['gkx','lion','cat']
    >>> dd = [1,2,3]
    >>> for i in zip(cc,dd):  #因为是一个迭代器,所以要用循环
        print(i)
    
    ('gkx', 1)
    ('lion', 2)
    ('cat', 3)
    >>> 
    >>> dd = [1,2,3,4,5]
    >>> for i in zip(cc,dd):
        print(i)
    
    ('gkx', 1)
    ('lion', 2)
    ('cat', 3)
    >>> #按最小的拼接
    View Code
    >>>dict()                        # 创建空字典
    {}
    >>> dict(a='a', b='b', t='t')     # 传入关键字
    {'a': 'a', 'b': 'b', 't': 't'}
    >>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
    {'three': 3, 'two': 2, 'one': 1} 
    >>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
    {'three': 3, 'two': 2, 'one': 1}
    >>>

    __import__():

    import sys  
    __import__('a')        # 导入 a.py 模块
  • 相关阅读:
    js 去掉文本域中的空格
    网站开发步骤
    获取客户端、服务器、本地IP地址
    c#用反射原理递归遍历复杂实体对象
    jquery1.8在ie8下not无效?
    状态模式
    虚函数和抽象函数的区别
    HashTable、HashSet和Dictionary的区别
    sql视图学习笔记--视图
    html背景为灰色 不能操作,中间div可以操作
  • 原文地址:https://www.cnblogs.com/gkx0731/p/9463638.html
Copyright © 2011-2022 走看看