磐安建设局网站,域名解析错误是网络问题还是电脑问题,企业所得税优惠政策,写网站方案嗨喽~大家好呀#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取
1.eval函数
函数的作用#xff1a;
计算指定表达式的值。
也就是说它要执行的python代码只能是单个表达式#xff08;注意eval不支持任何形式的赋值操作这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取
1.eval函数
函数的作用
计算指定表达式的值。
也就是说它要执行的python代码只能是单个表达式注意eval不支持任何形式的赋值操作而不能是复杂的代码逻辑。
eval(source, globalsNone, localsNone, /)参数说明 source必选参数可以是字符串也可以是一个任意的code(代码)对象实例可以通过complie函数创建。如果它是一个字符串它会被当作一个使用globals和locals参数作为全局和本地命名空间的python表达式进行分析和解释。 globals可选参数表示全局命名空间存放全局变量如果被提供则必须是一个字典对象。 locals可选参数表示全局命名空间存放局部变量如果被提供可以是任何映射对象。如果参数被忽略那么它将会取与globals相同的值。
如果globals与locals都被忽略那么它们将取eval()函数被调用环境下的全局命名空间和局部命名空间。
返回值
如果source是一个code对象且创建该code对象时complie函数的mode参数是‘exec’那么eval()函数的返回值是None
否则如果source是一个输出语句如print()则eval()返回结果为None
否则source表达式的结果就是eval()函数的返回值
实例 遇到问题没人解答小编创建了一个Python学习交流QQ群926207505
寻找有志同道合的小伙伴互帮互助,群里还有不错的视频学习教程和PDF电子书x 10
def func():y 20 #局部变量ya eval(xy)print(a:,a) #x没有就调用全局变量b eval(xy,{x:1,y:2}) #定义局部变量优先调用print(b:,b)c eval(xy,{x:1,y:2},{y:3,z:4}) print(c:,c) d eval(print(x,y))print(d:,d) #对于变量d因为print()函数不是一个计算表达式因此没有返回值
func()输出结果
a: 30
b: 3
c: 4
10 20
d: None2.exec函数
函数的作用
动态执行python代码。
也就是说exec可以执行复杂的python代码而不像eval函数那样只能计算一个表达式的值。
exec(source, globalsNone, localsNone, /)source必选参数表示需要被指定的python代码。
它必须是字符串或code对象。
如果source是一个字符串该字符串会先被解析为一组python语句然后执行。
如果source是一个code对象那么它只是被简单的执行。
返回值
exec函数的返回值永远为None。
eval()函数和exec()函数的区别 eval()函数只能计算单个表达式的值而exec()函数可以动态运行代码段。 eval()函数可以有返回值而exec()函数返回值永远为None。
例1
我们把eval中的例子拿过来执行 遇到问题没人解答小编创建了一个Python学习交流QQ群926207505
寻找有志同道合的小伙伴互帮互助,群里还有不错的视频学习教程和PDF电子书x 10
def func():y 20a exec(xy)print(a:,a)b exec(xy,{x:1,y:2})print(b:,b)c exec(xy,{x:1,y:2},{y:3,z:4})print(c:,c)d exec(print(x,y))print(d:,d)
func()执行结果
#exec不会有任何返回值
a: None
b: None
c: None
10 20
d: None例2 遇到问题没人解答小编创建了一个Python学习交流QQ群926207505
寻找有志同道合的小伙伴互帮互助,群里还有不错的视频学习教程和PDF电子书x 10
expr
z 30
sum x y z #一大包代码
print(sum)def func():y 20exec(expr) 102030exec(expr,{x:1,y:2}) 3012exec(expr,{x:1,y:2},{y:3,z:4}) #3013x是定义全局变量1y是局部变量func()执行结果
60
33
343.complie函数
函数的作用
compile(source, filename, mode, flags0, dont_inheritFalse, optimize-1)参数说明 source字符串或AST对象表示需要进行编译的python代码 filename指定需要编译的代码文件如果不是文件读取代码则传递一些可辨认的值。 mode用于标识必须当做那类代表来编译如果source是由一个代码语句序列组成则指定mode‘exec’如果source由单个表达式组成则指定mode‘eval’如果source是由一个单独的交互式语句组成则指定modo‘single’。必须要制定不然肯定会报错。
例子 遇到问题没人解答小编创建了一个Python学习交流QQ群926207505
寻找有志同道合的小伙伴互帮互助,群里还有不错的视频学习教程和PDF电子书s #一大段代码
for x in range(10):print(x, end)
print()code_exec compile(s, string, exec) #必须要指定mode指定错了和不指定就会报错。
code_eval compile(10 20, string, eval) #单个表达式
code_single compile(name input(Input Your Name: ), string, single) #交互式a exec(code_exec) 使用的exec因此没有返回值
b eval(code_eval) c exec(code_single) 交互
d eval(code_single)print(a: , a)
print(b: , b)
print(c: , c)
print(name: , name)
print(d: , d)
print(name; , name)执行结果
0123456789 #有print就会打印
Input Your Name: kebi
Input Your Name: kebi
a: None
b: 30
c: None
name: kebi
d: None
name; kebi尾语
最后感谢你观看我的文章呐~本次航班到这里就结束啦
希望本篇文章有对你带来帮助 有学习到一点知识~
躲起来的星星也在努力发光你也要努力加油让我们一起努力叭。 最后宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀