eval()函数和compile函数
>eval()函数
'''
eval()函数
1:eval函数可以动态的执行字符串定义的表达式
2:将字符串转换成其他序列结构
3:使用全局变量
'''
# 1动态的执行字符串定义的表达式
num=10
result=eval('num*9+1')
print(result)
#2将字符串转换成其他序列结构
list1=eval('[1,2,3,4,5,6,67]') #字符串转列表
tuple1=eval('(1,2,3,4,5)') #字符串转元祖
dict1=eval("{'key1':'valuses1','key2':'values2'}")
print(list1,tuple1,dict1)
#3使用全局变量 使用全局变量的时候,变量必须是个字典 , eval函数可以将字典的键值传入动态的字符串表达式中
global dict1
dict1={
'num':10
}
a=eval('num*10',dict1)
print(a)
'''
exec()函数定义执行对行动态字符串表达式
'''
# exec('for i in range (1,10):'\
# 'print(i)')
#compile() 函数
>compile函数
eval 函数和exec函数都是先编译在执行,这样会对程序性能影响,可以使用compile函数对字符串函数进行解析,程序将不会运行动态编译,而是直接执行编译好的对象
sta='10*9+1'
com=compile(sta,'',"eval")
print(eval(com))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具