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

    一、与作用域有关

    1.locals()

    当前作用域的值

    2.globals()

    全局作用域的值

    print(locals())
    print(globals())

    二、与迭代器/生成器有关

    1.next()

    与双下方法__next__()一样,next(iterator/generator)

    def generator():
        for i in range(10):
            yield i
    
    
    g = generator()
    print(next(g))     # g.__next__()

    2.iter()

    与__iter__()方法一样,可迭代对象->迭代器

    from collections.abc import Iterator
    
    li = list(range(10))
    li = iter(li)       # li.__iter__()
    ret = isinstance(li, Iterator)
    print(ret)

    3.range()

    可以看成有序数字的list

    三、其它

    1.dir()

    含参数,获取当前参数的属性、方法,无参数获取当前作用域的变量、方法等,注意:不包含内置命名空间的变量和方法

    2.help()

    help(内容),获取帮助文档,和Linux一样

    3.callable()

    callable(内容),判断是否可调用,返回值True,False

    4.import

    导入模块

    5.open()

    打开文件

    6.与内存有关

    1)hash(数据),查看是否可哈希,可哈希输出值,不可哈希报错

    _hash = hash(123)   # 123可哈希
    print(_hash)
    
    _hash = hash([])    # list不可哈希
    print(_hash)

    2)id()

    查看值(变量、函数)的内存地址

    7.输入输出

    1)input()

    用户交互

    2)print()

    end:是默认参数,end = ' '

    for i in range(4):
        print(i, end=' ')   # 输出结果:0 1 2 3

    sep:sep是默认参数,sep = ' '

    print(1, 2, 3, 4, 5, sep='')   # 去除1,2,3,4,5之间的空格

    file:file也是默认参数,file = 'None',终端的实质是文件

    f = open(file='f_1', mode='w', encoding='utf-8')
    print('Hello, World', file=f)       # 文件是f
    f.close()

    flush:flush是默认参数,flush = False,值为False时,一起打印;为True时,一个一个打印

    # 简单的进度调
    import time
    for i in range(0, 101, 2):
        time.sleep(0.1)
        char_num = i//2
        ret = "
    %s%%:  %s
    " % (i, '*' * char_num)if i == 100 else '
    %s%%: %s' % (i, '*' * char_num)
        print(ret, end='', file=True)

    8.执行字符串-不建议使用

    1)eval(),有返回值,用于计算

    s = '1+2+3+4'
    ret = eval(s)
    print(ret)

    2)exec(),无返回值,用于流程控制

    s = """
    for i in range(5):
        print(i)
    """
    exec(s)

    3)compile()

    编译给eval()和exec()使用,几乎不用

    四、与数字相关

    1.数据类型

    1).bool

    2).int

    3).float

    包含:有序小数,无限循环小数

    4).complex

    复数:实数+虚数(10j),几乎用不到

    2.进制转化

    1)bin()

    十进制->二进制

    2)oct()

    十进制->八进制,不常用

    3)hex()

    十进制->十六进制

    print(bin(10))      # 以0b开头
    print(oct(10))      # 以0o
    print(hex(10))      # 以0x

    3.数学运算

    1).abs()

    求绝对值

    2).divmod(a,b)

    div(除) mod(模/余),除余,a//b 和 a%b

    a = divmod(10, 3)
    print(a)    # 输出结果:(3,1)

    3).round(a,b)

    求float的精度,float a,取小数点后b位

    a = round(3.14159, 2)
    print(a)    # 输出3.14

    4).pow(a,b)

    a的b次幂,a**b

    a = pow(2, 5)
    print(a)

    power(a, b, c)

    a**b%c

    5).sum()

    sum(iterable, start)

    start从几开始,若不写则从0开始,若没有iterable,返回start

    a = sum(list(range(5)))
    print(a)
    a = sum(list(range(5)), 10)     # start 不是关键字参数
    print(a)

    6).max()

    求最大值,可以用iterable或*args

    key = None为默认参数,key = func/函数名

    print(max(1, 2, 3, 4))  # 4
    print(max([1, 2, 3, 4]))    # 4
    print(max(1, 2, 3, 4, -5))  # 4
    print(max(1, 2, 3, 4, -5, key = abs))     # -5

    7)min()

    求最小值,用法和max()一样,最好打散*

    print(min(1, 2, 3, 4))  # 1
    print(min([1, 2, 3, 4]))    # 1
    print(min(1, 2, 3, 4, -5))  # -5
    print(min(1, 2, 3, 4, -5, key = abs))     # 1

     五、最重要的内置函数

    1.len()

    作用:获取容器数据类型的长度

    print(len('abc'))   # str
    print(len([1, 2, 3, 'a']))  # list
    print(len((1, 2, 3, 'a')))  # tuple
    print(len({'k1': 'v1', 'k2': 'v2'}))    # dict
    print(len({'k1', 'k2'}))    # set

    2.zip()

    拉链方法

    zip(iter),返回值可迭代

    li = [1, 2, 3, 'a']
    t = (1, 2, 3, 'a')
    dic = {'k1': 'v1', 'k2': 'v2'}
    se = {'k1', 'k2'}   # dict 和 set 是无须的
    a = zip(li, t, dic, se)
    for i in a:
        print(i)
    """
    结果:
    (1, 1, 'k1', 'k1')
    (2, 2, 'k2', 'k2')
    """

    3.filter()

    filter(函数名, 可迭代对象),返回值可迭代

    filter(),筛选True

    # 求1-100的偶数
    def func1(x):
        return x % 2 == 0   # 为偶数返回True
    
    
    ret = filter(func1, list(range(1, 101)))    # ret为可迭代对象
    for i in ret:
        print(i)
    # 过滤1-100中平凡根为整数的值
    from math import sqrt
    
    
    def _sqrt(x):
        if sqrt(x).is_integer():
            return True
    
    
    ret = filter(_sqrt, list(range(1, 101)))
    for i in ret:
        print(i)
        
    """
    结果:
    1
    4
    9
    16
    25
    36
    49
    64
    81
    100
    """
    # 过滤空字符串
    def func1(x):
        return x and str(x).strip()
    
    
    ret = filter(func1, [' ', [], 'ab', '', 123, {}])
    for i in ret:
        print(i)
    """
    结果:
    ab
    123
    """

    4.map()

    map(函数名,可迭代对象),返回值是可迭代对象

    # 求list元素的绝对值,abs()里的参数不能是list
    ret = map(abs, [1, -1, 2, -4])
    for i in ret:
        print(i)
    print(list(ret))    # [],值只能取一次
    # 求平方大于10的数
    def func1(x):
        if pow(x, 2) > 10:
            return x
    
    
    ret = map(func1, [1, 2, 3, 4])
    for i in ret:
        print(i)
    """
    结果:
    None
    None
    None
    4
    """

    map()和filter()的区别

    1).filter()是删选,获取值的数量<=原来的

    2).map(),获取值的数量不变

    5.sorted()

    sorted(iterable, key=函数ming, revese='Flase')

     reverse默认False

    # sorted()
    li = [1, -1, 4, -3]
    li2 = sorted(li, key = abs, reverse=True)
    print(li2)
    
    # sort()
    li.sort(key = abs, reverse=True)
    print(li)

    sort()和sorted()的区别

    1).sort(),不创建新的内存地址

    2)sorted(),创建新的内存地址

     六、数据类型的强制转化

    1.str

    2.list

    3.tuple

    4.set

    5.frozenset()

    把集合变成不可变数据类型

    6.dict

    七、其它常用方法

    1.ord()

    把字母->数字,对应Ascii码或unicode

    2.chr()

    数字->字母,对应Ascii码或unicode

    print(ord('A'))     # 65
    print(chr(97))      # a

    3.any()

    any(iterable),任何一个元素为True,返回True

    4.all()

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

    print(any(['', [], {}, True]))      # True
    print(all([1, 'a', []]))        # False

    5.bytes()

    bytes(str, encoding),将str->bytes

    print(bytes('tom', encoding='utf-8'))   # b'tom'

    7.repr()

    就是%r

    s = 'tom'
    print('Hello, %s' % s)
    print('Hello, %r' % s)
    """
    结果:
    Hello, tom
    Hello, 'tom'
    """

    8.sorted()

    sorted(iterable, key, reverse)

    li = [1, -1, 4, -3]
    ret = sorted(li, key=abs, reverse=True)
    print(ret)
    # 结果:4,-3,1,-1

    9.reversed()

    反转,返回值为可迭代

    li = [1, -1, 4, -3]
    ret = reversed(li)
    for i in ret:
        print(i)

    七、总结

    1.带有key的方法

    max(), min(), filter(), map(), sorted()

    2.返回值是迭代器

    zip(), map(), filter(), reversed()

     注意:sorted() 和reversed()都是创建新的值,重新开辟新的内存空间

      

  • 相关阅读:
    [java核心篇02]__内部类
    iOS学习之MVC,MVVM,MVP模式优缺点
    iOS MVC、MVP和MVVM理解
    网络常见的9大命令
    计算机网络基础知识总结
    iOS面试常见问题和知识点汇总
    NSMutableArray 删除可变数组元素
    iOS之集成GoogleMap定位、搜索注意事项
    iOS 13-Sign In with Apple
    Lipo移除ORC架构
  • 原文地址:https://www.cnblogs.com/wt7018/p/10859580.html
Copyright © 2011-2022 走看看