z3python:将字符串转换为表达式

时间:2012-09-22 02:55:19

标签: python z3

鉴于x,y,z = Ints('x y z')s='x + y + 2*z = 5'之类的字符串,是否有快速方法将s转换为z3表达式?如果它不可能那么似乎我必须做很多字符串操作来进行转换。

1 个答案:

答案 0 :(得分:7)

您可以使用Python eval函数。这是一个例子:

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脚本(出于安全原因)。