1. 程式人生 > >eval, exec, compile

eval, exec, compile

# eval 是把字串型別的資料作為程式碼進行執行
# s = "18+2"
# ret = eval(s) # 執行字串型別的程式碼
# print(ret)

# code = input("請輸入你要執行的程式碼:")
# ret = eval(code)
# print(ret)


# s = "{'name':'alex', 'age':18, 'isMan':False}" # 字串
# # 把字串型別的程式碼還原回字典, 列表, 元組
# ret = eval(s)  # 側重的有返回值
# print(ret)
# print(type(ret))


# exec execute 執行字串型別的程式碼, 不能太長. 不能太亂
# code = input("請輸入你要執行的程式碼")
# exec(code) # 沒有返回值. 想要返回值用eval
# print(a)   # pycharm報錯不一定準


# compile 編譯: 把你要執行的程式碼先預編譯. 通過exec和eval可以執行我們的程式碼

code = '''
for i in range(10):
    if i % 2 == 0:
        print(i)
'''


c = compile(code, "", "exec") # 預載入程式碼
# exec
exec(c) # 執行程式碼

# 可以使用complie寫一個程式設計大賽.