","exec") compile()将字符串编译成python代码2.exec(r) 执行python代码3.eval("8*6") eval("")里" />

python内置函数1

发布时间:2019-09-12 07:54:50编辑:auto阅读(1283)

    1.r=compile(s,"<string>","exec")

      compile()将字符串编译成python代码

    2.exec(r)  执行python代码

    3.eval("8*6") eval("")里面只能执行表达式,执行eval()会有返回值,exec执行完无返回值.

    4.filter和map

     filter(函数,可迭代对象),返回一个符合条件的元素集合.对可迭代对象进行筛选.

     map(函数,可迭代对象)相当于for循环,对每个元素进行处理并返回新的处理结果.

    5.with open('config','r') as f:

       for line in f: 这样是一行一行加载操作比f.readlines()一下把所有文件全部加载到内存效率高


    6.值为false的数据

      0 ,None, " ", [], {}, ()

    7.all() 和 any()

     这两个函数接收一个可以被迭代的对象,all()要求对象中所有的数据为true才返回true,any()要求

     对象中至少有一个返回true的数据才返回true

    8.bin() 接收10进制转换成二进制

     oct() 十进制》八进制

     hex() 十进制》十六进制

    9.utf-8编码一个汉字是3个字节,GBK编码一个汉字是2个字节.一个字节是8位

     n = bytes("汉字",encoding="utf-8")

     把汉字转换成字节类型,n的结果跟encoding设置的不同而不同

     str1 = str(n,encoding="utf-8")

    10.chr()  把ASCII码表中的数字转成对应字符

      ord()  把字符转换成对应数字

    11.file.open()的时候获取里面的内容都是字符串类型

    12.python p1.py 执行流程

     1.file.open读取文件内容为string加载到内存

     2.python编译器把字符串编译成特殊代码

     3.执行代码


    13.s="print(123)"

      r = compile(s,"<string>","exec")          python编译字符串成python代码

      exec(r) exec()也可以接收执行字符串,无返回值   python执行编译后的代码字符串

      s="8*7"

      ret=eval(s)                python运算表达式并且返回结果赋值给ret


    14.eval的局限性和exec的局限性

     str ="a,b=10,20\nprint(random.randrange(a,b))"

     r = compile(str,"<string>","exec")

     eval(str) 或者  exec(str) or exec(r)  

    如果在eval中执行多条python语句,这样会出现异常.因为eval只能执行一个python表达式并且
    会返回这个表达式的值,所以多条语句的情况下不适合用eval。
    exec(str)或者exec(r)都可以一次正确的执行多条python语句,但是exec无返回值.


关键字