z3python:将字符串转换为表达式
问题内容:
鉴于存在这样x,y,z = Ints('x y z')
的字符串s='x + y + 2*z = 5'
,是否存在将s转换为z3表达式的快速方法?如果不可能,那么看来我必须做很多字符串操作才能进行转换。
问题答案:
您可以使用Pythoneval
函数。这是一个例子:
from z3 import *
x,y,z = Ints('x y z')
s = 'x + y + 2*z == 5'
F = eval(s)
solve(F)
该脚本显示[y = 0, z = 0, x = 5]
在我的机器上。
不幸的是,我们无法在http://rise4fun.com/z3py上执行此脚本。rise4fun网站eval
出于安全原因拒绝包含的Python脚本。