作者jasonfghx (工人)
看板Python
标题[问题] for 回圈问题
时间Wed Feb 28 19:20:10 2018
from gurobipy import *
# Create a new model
m=Model('Protorype example_type1')
x_1=m.addVar(lb=0,vtype=GRB.CONTINUOUS,name='x_1')
x_2=m.addVar(lb=0,vtype=GRB.CONTINUOUS,name='x_2')
m.update()
m.setObjective(3*x_1+5*x_2,GRB.MAXIMIZE)
m.addConstr(x_1<=4,'c0')
m.addConstr(2*x_2<=12,'c1')
m.addConstr(3*x_1+2*x_2<=18,'c2')
m.optimize()
print('obj:%d'%m.objVal)
for v in m.getVars(): print('%s:%d'%(v.varName,v.x))
我主要想请教for v in m.getVars(): print('%s:%d'%(v.varName,v.x))
这一行, 如果我写成同一行它可以执行
但如果我写成
for v in m.getVars():
print('%s:%d'%(v.varName,v.x))
会显示出
for v in m.getVars():
^
SyntaxError: unexpected EOF while parsing
我算入门, 有点不太懂为何有这样差别, 如果将来for回圈再大一点我可以怎麽改进
谢谢指教
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.200.50.171
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1519816812.A.58D.html
1F:→ s860134: 我猜是你复制贴上的的时候贴到奇怪的字元? 02/28 19:51
2F:→ jasonfghx: 因为差就是有空行 跟没空行 02/28 20:21
3F:→ jasonfghx: 我实在想不出怎麽有这差别 02/28 20:21
4F:→ wennie0433: tab or 空白混用? 03/01 01:10
for v in m.getVars():
print('%s:%d'%(v.varName,v.x))
^
1
tab 或是只是space一次他都是变成底下的讯息
只有我把这两行变成一行执行他才可以通过, 想请问这样是发生什麽问题
会显示出
for v in m.getVars():
^
SyntaxError: unexpected EOF while parsing
※ 编辑: jasonfghx (180.217.116.234), 03/01/2018 07:47:38
6F:→ gmccntzx1: 先把全部的缩排调好:18,32,40,47行,再跑一次. 03/01 11:58
7F:→ gmccntzx1: 还有,你执行的方式是把一行一行code贴到右边执行吗? 03/01 12:00
8F:→ gmccntzx1: 因为我看你console那边In[56]也是出现同样的错误 03/01 12:00
这边空格弄掉就可以 我自问自答
m=Model('Protorype example_type1')
x_1=m.addVar(lb=0,vtype=GRB.CONTINUOUS,name='x_1')
x_2=m.addVar(lb=0,vtype=GRB.CONTINUOUS,name='x_2')
m.update()
m.setObjective(3*x_1+5*x_2,GRB.MAXIMIZE)
m.addConstr(x_1<=4,'c0')
m.addConstr(2*x_2<=12,'c1')
m.addConstr(3*x_1+2*x_2<=18,'c2')
m.optimize()
print('obj:%d'%m.objVal)
for v in m.getVars(): print('%s:%d'%(v.varName,v.x))
※ 编辑: jasonfghx (180.217.253.163), 03/05/2018 18:22:41
14F:→ jasonfghx: 楼上意思? 03/06 17:45