Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docplex问题:TypeError:无法使用==测试表达式相等性,请尝试使用Python is运算符或方法相等:_Python_Docplex - Fatal编程技术网

docplex问题:TypeError:无法使用==测试表达式相等性,请尝试使用Python is运算符或方法相等:

docplex问题:TypeError:无法使用==测试表达式相等性,请尝试使用Python is运算符或方法相等:,python,docplex,Python,Docplex,为什么会出现这个错误。由决策变量和常量构建的DOcplex表达式本身就是一个决策对象。其值仅在solve()之后定义,并且可以通过solution\u value属性查询。 关系运算符(如=,=)已重载以生成约束,例如x==1实际上是一个约束,而不是Python布尔值。 如果x==1,则编写诸如之类的代码无法工作,因为x实际上是一个决策变量,在解算之前没有任何值。 这就是为什么消息告诉您正在尝试测试两个表达式之间的相等性。可以使用is或方法equals,但不能使用= 不幸的是,您的代码不允许重现

为什么会出现这个错误。

由决策变量和常量构建的DOcplex表达式本身就是一个决策对象。其值仅在solve()之后定义,并且可以通过
solution\u value
属性查询。 关系运算符(如
=
=
)已重载以生成约束,例如x==1实际上是一个约束,而不是Python布尔值。 如果x==1,则编写诸如
之类的代码无法工作,因为x实际上是一个决策变量,在解算之前没有任何值。
这就是为什么消息告诉您正在尝试测试两个表达式之间的相等性。可以使用
is
或方法
equals
,但不能使用
=


不幸的是,您的代码不允许重现该问题,也无法理解您尝试执行此操作的原因。

您的代码没有编译,而且您没有包含完整的回溯,因此我们不知道您的代码可能会在哪里失败。请提供编译和运行的代码(您的代码有明显的语法错误)。还请提供回溯,以便我们能够识别失败的语句。
mymodel = Model("OPL_Purchasing_plan");
nr_month= range(0, 12)
na_pur_req = [550, 750, 6500, 675, 210, 120, 0, 560, 140, 320, 0, 100]
na_average_cost = 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5]

for i in nr_month:
    if(na_pur_req[i] == 0):
        mymodel.add_constraint(na_actual_cost_test[0][i] <= na_actual_suply[0][i] * 0,'con9');
     
    else:
        mymodel.add_constraint(na_actual_cost_test[0][i] <= na_actual_suply[0][i] * na_average_cost[i],'con10');
TypeError: Cannot use == to test expression equality, try using Python is operator or method equals