2011-09-24 52 views
0

我剛開始學習python,並在Python GUI Shell IDLE中編寫程序。代碼如下:在Python中運行程序[Windows上的ActiveState Python]

>>> def buildConnectionString(params): 
    """Build a connection string from a dictionary of parameters. 
    Returns string. """ 
    return ";".join(["%s=%s" % (k,v) for k,v in params.items()]) 
    if __name__ == "__main__": 
     myParams = {"server":"mpligrim",\ 
       "database":"master",\ 
       "uid":"sa",\ 
       "pwd":"secret" 
       } 
     print(buildConnectionString(myParams)) 

我面臨一個問題,而我嘗試運行此程序。在IDLE,當我點擊運行模塊,一個新的窗口打開了說「無效語法」 以下是截圖: enter image description here

我無法找到如何運行這一點,並希望得到幫助與進一步繼續這個。

鏈接:http://i.imgur.com/UzAfY.png

回答

0

移動的if __name__ == "__main__":回四個空格;您在空閒間隔是從那裏面您複製和粘貼在這裏不同的是,代碼工作正常:

def buildConnectionString(params): 
    """Build a connection string from a dictionary of parameters. 
    Returns string. """ 
    return ";".join(["%s=%s" % (k,v) for k,v in params.items()]) 

if __name__ == "__main__": 
    myParams = {"server":"mpligrim",\ 
     "database":"master",\ 
     "uid":"sa",\ 
     "pwd":"secret" } 

    print(buildConnectionString(myParams)) 

閒置打開一個新的窗口,創建這個作爲的.py腳本。然後按F5執行,或者去運行 - >運行模塊

+0

你的意思是這樣>> http://i.imgur.com/RjWQJ.png? 仍然收到相同的'無效語法'錯誤。 – Cipher

+0

您的間距仍然稍微不正確,字典myParams在第一行之後的行中有太多空間。您可能需要查看[this](http://stackoverflow.com/questions/419163/what-does-if-name-main-do)if語句。它看起來像你試圖在shell上運行它,因爲你實際上沒有運行腳本,「if」將不起作用。在IDLE中打開一個新窗口並將其複製到那裏。然後運行模塊('F5')。一旦間距發生變化,它對我有效,我已經改變了我的答案以反映這一點。 – Ben

+0

唷!這麼多隻是間距。 – Cipher

1

看起來你已經將shell輸出的頭文件複製到模塊窗口中了:你不希望你的文件看起來像這樣:

Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32 
Type "copyright", "credits" or "license()" for more information. 
>>> print "Hello World" 

你只是想這樣的:

print "Hello World" 

刪除所有其他的東西。