2011-12-19 103 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中输入该代码 - 在文本编辑器中执行该代码。