exec和eval内置函数

时间:2023-01-30 20:51:14

你在线执行过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。