2011-12-19 105 views
0

新的Python,正在閱讀diveintopython並試圖運行從書下面的代碼:python If語句語法錯誤?

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":"mpilgrim", \ 
        "database":"master", \ 
        "uid":"sa", \ 
        "pwd":"secret" \ 
        } 
    print buildConnectionString(myParams) 

現在,當我按下回車鍵,Python的外殼說if語句有語法錯誤?我正在運行Python 2.7。

+4

歡迎來到StackOverflow。發佈(完整且準確)的錯誤會讓人們更快地幫助你:) – MByD 2011-12-19 09:16:36

+0

你確定你沒有混合標籤和空格嗎? – 2011-12-19 09:19:54

+0

這種縮進的東西讓我瘋狂。有人可以建議我使用編輯器嗎?我很困惑,爲什麼我不能用這些縮進錯誤打印這個聲明 – 2011-12-19 19:54:45

回答

0

看起來您的縮進級別錯誤。看着你粘貼的代碼,我想你會混合標籤和空白,所以你使用的是一個「壞」的編輯器。使用一個用空格替換標籤的編輯器。

3

代碼本身正在工作(我只是試了一下)。出現錯誤的可能原因是縮進不一致。看起來你的行以不同數量的空格(或標籤)開始。嘗試將每個縮進行開始處的空格更改爲四個空格,然後再次運行該腳本。

+0

你用什麼環境編碼?對不起,我是新人,失去了人們告訴我不要在shell中編碼?那麼我應該在哪裏編碼? – 2011-12-19 19:47:07

+0

@Apprentice程序員:我通常使用Python IDLE或Geany。 – Sonya 2011-12-20 07:59:55

2

錯誤在第5行:return應該在函數的開頭"""的級別上縮進。

但是,您不應該在shell中輸入該代碼 - 在文本編輯器中執行該代碼。