作者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/m.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