exec和eval内置函数
你在线执行过Python代码吗?他们用的什么方法把你的代码执行的呢,就是今天要学的函数exec,它把你的Python代码一行行的当做字符串进行执行哦,来我们一起看看这个方法吧,朋友们go
1、exec 使用方法如下:
#exec 执行计算 i=12 j=13 exec("answer=i*j") #执行字符串中的python代码,并声明answer print(answer) #输出结果
#exec 执行复杂的函数 ''' #a.txt文件内容 def fact(n): if n == 1: return 1 else: return n * fact(n - 1) print(fact(6)) ''' func="def fact(n):\n\t return 1 if n==1 else n*fact(n-1)" exec(func) #执行func代码,声明函数 a=fact(5) #调用函数 print(a) #输出函数
#exec 执行文件中的代码 with open('a.txt',encoding="utf-8") as f: s=f.read() #文件内容读到变量中 exec(s) #执行文件代码
#exec 接受传参 x=10 y=20 expr=""" z=30 sum=x+y+z print(sum) """ exec(expr) #默认的X,Y值 exec (expr,{'x':1,'y':2}) #指定x=1,y=2
2、eval() 计算指定表达式的值。也就是说它要执行的python代码只能是单个表达式(注意eval不支持任何形式的赋值操作),而不能是复杂的代码逻辑
#eval 执行计算 x=12 y=13 print(evaleval("x*y")) #执行计算,并返回结果 print(eval("x+y",{"x":1,"y":2})) #优先使用局部变量
eval()函数和exec()函数的区别:
eval()函数只能计算单个表达式的值,而exec()函数可以动态运行代码段。
eval()函数可以有返回值,而exec()函数返回值永远为None。