How to fix: TypeError: Can only add LpConstraintVar, LpConstraint, LpAffineExpression or True objects
How to fix: TypeError: Can only add LpConstraintVar, LpConstraint, LpAffineExpression or True objects
我正在尝试使用 PuLP 创建 LP。决策变量是通过对 .csv 的行进行计数并为每一行添加一个来生成的。当我想创建我的 objective 函数时,它会返回一个 TypeError。
optimale_bestellmenge = ""
for rownum, row in data.iterrows():
for i, schedule in enumerate(decision_variables):
if rownum == i:
formula = sqrt(2 * row['Kosten'] *row['bedarf'] / row['hkosten'])
optimale_bestellmenge += formula
prob += optimale_bestellmenge
print ("Zielfunktion: " + str(optimale_bestellmenge))
我确实知道 TypeError 通常是什么,但我无法弄清楚我应该如何以及将公式转换为哪种类型。这是完整的错误:
Traceback (most recent call last):
File "C:/Users/T/Desktop/optimizer/eoq.py", line 62, in <module>
optimales_eoq_modell(budget)
File "C:/Users/T/Desktop/optimizer/eoq.py", line 37, in optimales_eoq_modell
prob += optimale_bestellmenge
File "C:\Users\T\AppData\Local\Programs\Python\Python37\lib\site-packages\pulp\pulp.py", line 1358, in __iadd__
raise TypeError("Can only add LpConstraintVar, LpConstraint, LpAffineExpression or True objects")
TypeError: can only concatenate str (not "float") to str
我已经尝试使用 str() 函数转换公式,但 TypeError 仅更改为:
TypeError: Can only add LpConstraintVar, LpConstraint, LpAffineExpression or True objects
这是一个字符串:
optimale_bestellmenge = ""
这是一个浮点数:
formula = sqrt(2 * row['Kosten'] *row['bedarf'] / row['hkosten'])
这是您尝试向字符串添加浮点数:
optimale_bestellmenge += formula
如果您只希望 formula
数字出现在 optimale_bestellmenge
字符串的末尾,请执行以下操作:
optimale_bestellmenge += str(formula)
如果你想继续把formula
中的数字加到optimale_bestellmenge
上,把optimale_bestellmenge
的定义改成float或int:
optimale_bestellmenge = 0
我正在尝试使用 PuLP 创建 LP。决策变量是通过对 .csv 的行进行计数并为每一行添加一个来生成的。当我想创建我的 objective 函数时,它会返回一个 TypeError。
optimale_bestellmenge = ""
for rownum, row in data.iterrows():
for i, schedule in enumerate(decision_variables):
if rownum == i:
formula = sqrt(2 * row['Kosten'] *row['bedarf'] / row['hkosten'])
optimale_bestellmenge += formula
prob += optimale_bestellmenge
print ("Zielfunktion: " + str(optimale_bestellmenge))
我确实知道 TypeError 通常是什么,但我无法弄清楚我应该如何以及将公式转换为哪种类型。这是完整的错误:
Traceback (most recent call last):
File "C:/Users/T/Desktop/optimizer/eoq.py", line 62, in <module>
optimales_eoq_modell(budget)
File "C:/Users/T/Desktop/optimizer/eoq.py", line 37, in optimales_eoq_modell
prob += optimale_bestellmenge
File "C:\Users\T\AppData\Local\Programs\Python\Python37\lib\site-packages\pulp\pulp.py", line 1358, in __iadd__
raise TypeError("Can only add LpConstraintVar, LpConstraint, LpAffineExpression or True objects")
TypeError: can only concatenate str (not "float") to str
我已经尝试使用 str() 函数转换公式,但 TypeError 仅更改为:
TypeError: Can only add LpConstraintVar, LpConstraint, LpAffineExpression or True objects
这是一个字符串:
optimale_bestellmenge = ""
这是一个浮点数:
formula = sqrt(2 * row['Kosten'] *row['bedarf'] / row['hkosten'])
这是您尝试向字符串添加浮点数:
optimale_bestellmenge += formula
如果您只希望 formula
数字出现在 optimale_bestellmenge
字符串的末尾,请执行以下操作:
optimale_bestellmenge += str(formula)
如果你想继续把formula
中的数字加到optimale_bestellmenge
上,把optimale_bestellmenge
的定义改成float或int:
optimale_bestellmenge = 0