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

    一、内置函数

           什么是内置函数?就是python给你提供的,拿来直接用的函数,比如print,input等等,截止到python版本的3.6.2,python一共提供了68个内置函数,有一些我们已经用过了,有一些还没有用过,还有一些需要学完了面向对象才能继续学习的,今天我们就认识一下python的内置函数(本节详细介绍的有51个):

    作用域相关

    locals()

    数字相关

    bool()

    字符串相关

    repr()

    下篇介绍

    str()

    globals()

    int()

    format()

    迭代器/生成器

    range()

    float()

    bytes()

    next()

    complex()

    bytearray()

    iter()

    数学运算

    abs()

    memoryview()

    字符串类型代码执行

    eval()

    divmod()

    ord()

    exec()

    round()

    chr()

    compile()

    pow(a,b)

    ascii()

    输入/输出

    input()

    sum()

    列表和元组

    list()

    print()

    min()

    tuple()

    内存相关

    hash()

    max()

    reversed()

    id()

    进制转换

    bin()

    slice()

    文件操作

    open()

    oct()

    其他相关

    sorted()

    filter()

    map()

    下篇介绍

    len()

    模块

    __import__()

    hex()

    enumerate()

    帮助

    help()

    数据集合相关

    dict()

    all()

    调用

    callable()

    set()

    any()

    查看内置属性

    dir()

    frozenset()

    zip()

    1、作用域相关:

      locals()  返回当前作用域中的名字

      globals()  返回全局作用域中的名字

    2、迭代器/生成器相关:

      range()  生成数据

      next()  迭代器向下执行一次,其内部实际使用了__next__()方法返回迭代器的下一个项目

      iter()  获取迭代器,其内部实际使用的是__iter__()方法来获取迭代器

    3、字符串类型代码的执行:

      eval()  执行字符串类型的代码,并返回最终结果(重在返回),示例如下:

        print(eval("2+2"))   # 结果为:4
        n = 8
        print(eval("2+n")) # 结果为:10
    
        def func():
            print(666)
        eval("func()")   # 结果为:666

      exec()  执行字符串类型的代码,没有返回,示例如下:

        exec("""
        for i in range(10):
            print(i)
        """)
    
        exec("""
        def func():
            print("我是周杰伦")
        func()
        """)

      compile()  将字符串类型的代码编译,代码对象能够通过exec语句来执行或者eval来进行求值,示例如下:

           """
                参数说明:
                    1. resource 要执行的代码,动态代码片段
                    2. 文件名,代码存放的文件名,当传入了第一个参数的时候,这个参数给空就可以了 
                    3. 模式,取值有3个:
                        1)exec:一般放一些流程语句的时候
                        2)eval:resource只存放一个求值表达式的时候
                        3)single:resource存放的代码有交互的时候,mode应为single
            """
            code1 = "for i in range(10):print(i)"
            c1 = compile(code1, "", mode="exec")
            exec(c1)
    
            code2 = "1+2+3"
            c2 = compile(code2, "", mode="eval")
            a = eval(c2)
            print(a)
    
            code3 = "name = input('请输入你的名字:')"
            c3 = compile(code3, "", mode="single")
            exec(c3)
            print(name)  # pycharm里的报错信息. 不一定是对的

          注意:有返回值的字符串形式用eval(),没有返回值的字符串形式的代码用exec(),一般很少用compile()

    4,输入和输出相关:

           input()  获取用户输入的内容

           print()  打印输出

    5,内存相关:

           hash()  获取到对象的哈希值(可哈希的有int,str,bool,tuple)

                  目的是为了存储. 计算之后是一个数字. hash值尽量的不要重复(在某些特定环境下hash可能会重复)

           id()  获取到对象的内存地址

    6,文件操作相关:

           open()  用于打开一个文件,创建一个文件句柄

    7,模块相关:

           __import__()  用于动态加载类和函数

    8,帮助:

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

    9,调用相关:

           callable()  用于检查一个对象是否是可调用,如果返回True,object有可能调用失败,但如果返回False,那调用绝对不会成功

    10,查看内置属性:

           dir()  查看对象的内置属性和方法,访问的是对象中的__dir()__方法

    11,基础数据类型相关:

       1)数字相关:

           bool()  将给定的数据转换成bool值,如果不给值,返回False

           int()  将给定的数据转换成int值,如果不给值,返回0

           float()  将给定的数据转换成float值,也就是小数

           complex()  创建一个复数,第一个参数为实部,第二个参数为虚部,或第一个参数直接用字符串来描述复数

           2)进制转换:

           bin()  将给的参数转换成二进制

           oct()  将给的参数转换成八进制

           hex()  将给的参数转换成十六进制

           3)数学运算:

           abs()  返回绝对值

           divmod() 返回商和余数,以元组的形式(商,余数)返回

           round()  四舍五入

           pow(a,b)  求a的b次幂,如果有三个参数,则求完次幂后对第三个数取余

           sum()  求和

        print(sum([1,2,3,4]))  # 结果为:10
        print(sum([1,2,3,4], 5)) # 结果为:15
        # sum函数中至少要有一个参数,且是可迭代对象

           min()  求最小值

           max()  求最大值

           4)和数据结构相关:

           列表和元组:

           list()  将一个可迭代对象转换成列表

           tuple()  将一个可迭代对象转换成元组

           reversed()  将一个序列翻转,返回翻转序列的迭代器

           slice()  列表的切片,如下示例:

        st = "大家好,我是小麻花"
        s = slice(1, 5, 2)
        print(st[s])  # 结果为:家,

      字符串相关:

      str()  将数据转化成字符串

      format()  与具体数据相关,用于计算各种小数,精算等,如下示例:

        # 字符串
        print(format('test', '<20'))  # 左对齐
        print(format('test', '>20'))  # 右对齐
        print(format('test', '^20'))  # 居中
        # 数值
        print(format(3, 'b')) # 转换成二进制
        print(format(97, 'c')) # 转换成unicode字符
        print(format(11, 'd')) # 十进制
        print(format(11, 'o')) # 八进制
        print(format(11, 'x')) # 十六进制(小写字母)
        print(format(11, 'X')) # 十六进制(大写字母)
        print(format(11)) # 和d一样
        # 浮点数
        print(format(123456789, 'e'))  # 科学计数法,默认保留6位小数
        print(format(123456789, '0.2e'))  # 科学计数法,保留2位小数(小写)
        print(format(123456789, '0.2E'))  # 科学计数法,保留2位小数(大写)
        print(format(1.23456789, 'f'))  # 小数点计数法,默认保留6位小数
        print(format(1.23456789, '0.2f'))  # 小数点计数法,保留2位小数
        print(format(1.23456789, '0.10f'))  # 小数点计数法,保留10位小数
        print(format(1.23456789e+10000, 'F'))  # 小数点计数法   结果为:INF(表示无穷大)

      bytes()  把字符串转化成bytes类型,如下示例:

        s = "你好"
        bs = s.encode("utf-8")
        print(bs)  # 结果为:b'xe4xbdxa0xe5xa5xbd'
        s1 = bs.decode("utf-8")
        print(s1)
    
        bs = bytes(s, encoding="utf-8")
        print(bs)  # 结果为:b'xe4xbdxa0xe5xa5xbd'

      bytearray()  返回一个新字节数组,这个数组里的元素是可变的,并且每个元素的值的范围是[0,255],如下:

        ret = bytearray('alex', encoding="utf-8")
        print(ret[0])  # 结果为:97
        print(ret)  # 结果为:bytearray(b'alex')

      memoryview()  查看bytes在内存中的情况,如下示例:

        s = memoryview("麻花藤".encode("utf-8"))
        print(s)  # 结果为:<memory at 0x0000000002640048>

      ord()  输入字符找该字符编码的位置,如下示例:

      chr()  输入位置数字找出对应的字符,如下示例:

      ascii()  是ascii码中的返回该值,不是就返回u…,如下示例:

        # 找到对应字符的编码位置
        print(ord('a'))   # 结果为:97
        print(ord(''))  # 结果为:20013
    
        # 找到对应编码位置的字符
        print(chr(97))  # 结果为:a
        print(chr(20013)) # 结果为:中
    
        # 在ascii码中就返回这个值,如果不在就返回u...
        print(ascii('a'))  # 结果为:'a'
        print(ascii(''))  # 结果为:'u597d'

      repr()  (下节介绍)

           数据集合相关:

           dict()  创建一个字典

           set()  创建一个集合

           frozenset()  创建一个冻结的集合,冻结的集合不能进行添加和删除操作(可哈希)

           其他相关:

           len()  返回一个对象中的元素的个数

           sorted()  对可迭代对象进行排序操作(下节介绍)

           enumerate()  获取集合的枚举对象,如下示例:

           lst = ['alex','wusir','taibai']
            for index,el in enumerate(lst): # 默认显示元素索引
                print(index,el)
            # 结果为:
            # 0 alex
            # 1 wusir
            # 2 taibai
    
            lst = ['alex','wusir','taibai']
            for index,el in enumerate(lst,100):  # 也可以指定序号开始的位置
                print(index,el)
            # 结果为:
            # 100 alex
            # 101 wusir
            # 102 taibai

      all()  可迭代对象中全部是True,结果才是True(如果可迭代对象为空,则返回True),如下示例:

      any()  可迭代对象中有一个是True,结果就是True(如果可迭代对象为空,则返回False),如下示例:

        print(all([1,2,True,0]))  # 结果为:False
        print(all([]))  # 结果为:True
        print(any([1,'',0]))  # 结果为:True
        print(any([]))  # 结果为:False

      zip()  函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同(遵循水桶效应,即长度取决于最短的列表长度),如下示例:

        l1 = [1,2,3]
        l2 = ['a','b','c','5']
        l3 = ['*','**',(1,2,3)]
        print(zip(l1,l2,l3))   # 结果为:<zip object at 0x000000000264D208>
        for i in zip(l1,l2,l3):
            print(i)
        # 结果为
        # (1, 'a', '*')
        # (2, 'b', '**')
        # (3, 'c', (1, 2, 3))

      filter()  过滤(下节介绍)

      map()  会根据提供的函数对指定序列做映射(下节介绍)

  • 相关阅读:
    线程之Thread
    如何通过HTTP优雅调用第三方-Feign
    Spring AOP核心源码
    Spring-beans之BeanFactory初始化
    spring-core源码走读
    power of two
    排序算法(二)两种选择排序
    排序算法(一)四种冒泡排序
    约瑟夫问题
    我理解的CLH
  • 原文地址:https://www.cnblogs.com/li-li/p/9476988.html
Copyright © 2011-2022 走看看