【五】字符串类型代码的执行(3)

【五】字符串类型代码的执行(3)

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

    s1 = input("请输入a+b:")  #输入:8+9
    print(eval(s1))  # 17 可以动态的执行代码. 代码必须有返回值
    
  • exec() 执行字符串类型的代码

    s2 = "for i in range(5): print(i)"
    a = exec(s2) # exec 执行代码不返回任何内容
    
    # 0
    # 1
    # 2
    # 3
    # 4
    print(a)  #None
    
    # 动态执行代码
    exec("""
    def func():
        print(" 我是周杰伦")
    """ )
    func()  #我是周杰伦
    
  • compile() 将字符串类型的代码编码. 代码对象能够通过exec语句来执行或者eval()进行求值

    code1 = "for i in range(3): print(i)"
    com = compile(code1, "", mode="exec")   # compile并不会执行你的代码.只是编译
    exec(com)   # 执行编译的结果
    # 0
    # 1
    # 2
    
    code2 = "5+6+7"
    com2 = compile(code2, "", mode="eval")
    print(eval(com2))  # 18
    
    code3 = "name = input('请输入你的名字:')"  #输入:hello
    com3 = compile(code3, "", mode="single")
    exec(com3)
    print(name)  #hello
    
posted @ 2023-06-01 20:31  Chimengmeng  阅读(24)  评论(0)    收藏  举报