• 14 内置函数


    主要内容:

    内置函数:就是python给你提供,拿来直接使用的函数.

    1. 作用域相关:

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

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

    def fn():
        a = 10
        print(locals())       #当前作用域中的内容,如果在全局作用域中,则显示全局作用域的内容.
        print(globals())      #全局作用域中的内容
        print("今天内容很简单")
    fn()
    

    2. 迭代器相关:

      range()    生成数据

    for i in range(20,15,-3):
        print(i)
    

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

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

    lst = ['高圆圆','马伊琍','袁泉','林依晨']
    it = lst.__iter__()         #it = iter(lst) 取迭代器
    print(it.__next__())        #从迭代器中取值    和next(it)效果一样
    print(next(it))
    

    3. 字符串类型代码的执行

      eval() 执行字符串类型的代码,并返回最终结果

    s = '24*5'
    a = eval(s)       #eval(obj)  obj必须为a string, bytes or code object
    print(a)          #结果120
    

      exec() 执行字符串类型的代码

    s = "for i in range(10): print(i)"
    a = exec(s) # exec 执行代码不返回任何内容
    print(a)
    # 动态执行代码
    exec("""
    def func():
        print(" 我是周杰伦")
    func()
    """ )
    

      compile() 将字符串类型的代码编译,代码对象能够通过exec语句或者eval()进行求值.

        参数说明:1,resource  ,要执行的代码,动态代码片段.

             2,文件名:代码存放的文件名,当传入第一个参数的时候,这个参数给空就可以了.

             3,模式:取值有三个:

               exec:     一般放一些流程语句的时候

    code1 = 'for i in range(10):print(i)'
    com = compile(code1,'',mode='exec')      #compile并不会执行你的代码,只是编译
    exec(com)   #执行编译的结果
    

               eval:      resource只存放一个求值表达式的时候

    code2 = '3+4+5'
    com = compile(code2,'',mode='eval')
    print(eval(com))
    

               single:   resource存放的代码有交互的时候,mode应为single

    code3 = 'name = input("请输入名字")'
    com = compile(code3,'',mode='single')       #用single说明resource中用了交互.
    exec(com)                                    #执行代码.
    print(name)
    

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

    4. 输入和输出相关的函数

      input(): 获取用户输入得内容

      print(): 打印输出

    print('李嘉诚','黄花菜','马云',sep='*',end='taiyang')   #seperator:分隔符(分离器,净油机)
    # 结果是:李嘉诚*黄花菜*马云taiyang
    

    5. 内存相关:

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

      哈希算法:目的具有唯一性,dict 查找效率非常高, hash表.用空间换的时间 比较耗费内存

    s = '林依晨'
    a = 12
    lst = [1,2,3,4,5,7]
    print(hash(s))      #结果3588732593406966857
    print(hash(a))      #结果12,int型的哈希值就是本身
    print(hash(lst))     #列表是不可哈希的
    

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

    s = '美好的一天'
    print(id(s))           #结果1337093092208
    #除了特殊的字符,字符串获取的地址是一样的。int 和 bool是一样的地址
    s = '美好的一天'
    s1 = '美好的一天'
    print(id(s))           #结果133709309220
    print(id(s1))          #结果133709309220
    

    6. 文件操作相关;

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

    7. 模块相关:

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

    8. 帮助

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

    9. 调用相关:

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

    a = 10
    print(callable(a))        #不可以被调用,返回false
    def func():
        print('mam')
    print(callable(func))       #函数是可以被调用的,返回ture
    

    10. 查看内置属性:

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

    li = ['tiantina','poppy','enheng','jasper']
    print(li.__dir__())
    

    11. 基础数据类型相关:

      数字相关:

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

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

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

        complex()创建一个复数,第一个参数是实部,二个参数是虚部

      进制转换:

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

        otc():将给定的参数转换成八进制

        hex():将给定的参数转换成16进制.

    print(bin(10))   #结果是0b1010
    print(oct(20))   #结果是0o24
    print(hex(12))   #结果是0xc

      数字运算:

        abs(): 返回绝对值

        divmode():返回商和余数

        round():四舍五入

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

        sum():求和

        min():最小值

        max():最大值  

    12. 和数据结构相关:

      列表和元祖:

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

    lst = '你好啊'
    it = list(lst)    #将一个可迭代对象转换成列表
    print(it)
    

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

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

    lst = '你好啊'
    it = reversed(lst)   #不会改变原列表,返回一个迭代器,设计上的一个原则
    print(list(it))
    

        slice():列表的切片

    lst = [1,2,3,4,5,6,7]
    s = slice(1,3,1)     #切片用的
    print(lst[s])
    

      字符串相关:

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

        format():与具体的数据相关,用于计算各种小数 

    s = "我叫王尼玛"
    print(format(s, "^20"))     #居中
    print(format(s, "<20"))     #左对齐
    print(format(s, ">20"))     #右对齐
    

            进制之间的转换:

    print(format(3, 'b' ))   # ⼆进制
    print(format(97, 'c' ))   # 转换成unicode字符
    print(format(11, 'd' ))   # ⼗进制 %d
    print(format(11, 'o' ))   # ⼋进制  8
    print(format(11, 'x' ))   # ⼗六进制(⼩写字⺟)
    print(format(11, 'X' ))   # ⼗六进制(⼤写字⺟)
    print(format(11, 'n' ))   # 和d⼀样
    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+3, 'F'))   # 小数点计数法. 很大的时候输出 INF
    

      bytes() 把字符串转换成byte类型

    s = '你好'
    bs = s.encode("utf-8")
    print(bs)
    bss= bs.decode('utf-8')
    print(bss)
    bs = bytes(s,encoding='utf-8')        #把字符串编码成utf-8
    print(bs)
    

      bytearray() 返回一个新字节数组,这个数字里的元素是可变的,并且每个元素的值得范围是(0,256)

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

      

    ret = bytearray('alex',encoding='utf-8')
    print(ret[0])                  #97
    ret[0] = 65
    print(str(ret))                #bytearray(b'Alex')
    

      memoryview() 查看bytes在内存中的情况

    s = memoryview('马化腾'.encode('utf-8'))
    print(s)                #结果是<memory at 0x000001269C0DE048>
    

      ord():输入字符找带字符编码的位置

    print(ord('a')) # 97, 返回字母a在编码表中的码位
    print(ord('中')) # 20013 中国的中字在编码表中的位置
    

      chr():输入位置数字找出对应的字符

    print(chr(65)) # 已知码位. 计算字符
    print(chr(20018))
    

      ascii():是ascii码中的返回该值,不是就返回/u

    print(ascii('中'))      #'u4e2d'
    print(ascii('a'))       #'a'
    

      repr():返回一个对象的string形式:

        repr():就是原封不动的输出,引号和转义字符都不起作用

    print(repr('大家好,	 
    我叫住结论'))#'大家好,	 
    我叫住结论'
    print('大家哈,我是周杰伦')# 大家哈,我是周杰伦
    

        %s 原封不动的写出来

    name = 'taibai'
    print('我叫%s' % name)        #我叫taibai
    

      数据相关:

        dict():创建一个字典

        set():创建一个集合

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

    13. 其他相关:

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

      sorted():对可迭代对象进行排序操作

      enumerated():获取结合的枚举对象.

    lst= ['alex','wusir','taiai']
    for index, el in enumerate(lst):
        print(str(index)+el)
    

      all():可迭代对象中全部是ture,结果才是ture

      any():可迭代对象中有一个是ture,结果就是ture

    print(all([1,2,True,0]))   #false
    print(any([1,2,True,0]))   #ture
    

      zip():函数用于将可迭代的对象作为参数,将对像中对应的元素打包成一个个元祖,然后返回有这些元祖组成的开了表,如果各个迭代器的元素个数不一致则返回的列表长度与最短的相同.

    lst = [1,2,3]
    l2 = ['a','b','c',5]
    l3 = ['*','**',(1,2,3)]
    for i in zip(lst,l2,l3):
        print(i)
    '''
    (1, 'a', '*')
    (2, 'b', '**')
    (3, 'c', (1, 2, 3))
    

      

     

     

      

      

  • 相关阅读:
    C++基础学习6:内联函数
    lvm
    yum源
    mysql性能优化
    PXE
    dns配置
    进程命令
    ssh免密登陆和加密解密
    RAID阵列
    快速部署postfix邮件服务器
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9338645.html
Copyright © 2020-2023  润新知