找不到syntaxerror

时间:2013-05-27 05:49:49

标签: python string syntax

msg = ('Here is your breakdown of your most used words: \n\n'
           'Word | Times Used'
           '\n:--:|:--:'
           '\n' + str(keys[0]).capitalize() + '|' + str(values[0])
           '\n*'* + str(keys[1]).capitalize() + '|' + str(values[1])
           '\n' + str(keys[2]).capitalize() + '|' + str(values[2])
           '\n' + str(keys[3]).capitalize() + '|' + str(values[3])
           '\n' + str(keys[4]).capitalize() + '|' + str(values[4])
           '\n' + str(keys[5]).capitalize() + '|' + str(values[5])
           '\n' + str(keys[6]).capitalize() + '|' + str(values[6])
           '\n' + str(keys[7]).capitalize() + '|' + str(values[7])
           '\n' + str(keys[8]).capitalize() + '|' + str(values[8])
           '\n' + str(keys[9]).capitalize() + '|' + str(values[9]))

我收到一个语法错误,其中'被*包围。

4 个答案:

答案 0 :(得分:2)

错误的行是'\n*'* + str(keys[1]).capitalize() + '|' + str(values[1])

当然*获得+之后的语法错误。

'\n*'* + str(keys[1]).capitalize() + '|' + str(values[1])

应该是(不是*

'\n*' + str(keys[1]).capitalize() + '|' + str(values[1])

答案 1 :(得分:2)

而不是找到这个错误,如何干净地重写它?

msg = """Here is your breakdown of your most used words:
         Word | Times Used
         :--:|:--:"""

for k,v in somedict:
    msg += "\n{}|{}".format(k.capitalize(),v)

print(msg)

答案 2 :(得分:1)

这是一种罕见的情况,其中SyntaxError几乎与编译器所说的完全相同:

msg = ('Here is your breakdown of your most used words: \n\n'
           'Word | Times Used'
           '\n:--:|:--:'
           '\n' + str(keys[0]).capitalize() + '|' + str(values[0])

到此为止你很好。如果你在这里关闭括号并删除其余部分,这将解析。

问题是,在此之后,您有另一个字符串文字:'\n' + ...。您可以将两个字符串文字彼此相邻而没有问题(Python将它们视为单个字符串),但在此阶段Python看到:

str(values([0])) '\n'

始终是语法错误。您需要一个运算符,最有可能是+。彼此旁边的字符串与文字一起使用。例如,你可以这样做:

>>> 'fred' 'flintstone'
'fredflintstone'

但不是:

>>> x = 'fred'
>>> x 'flintstone'
  File "<stdin>", line 1
    x 'flintstone'
                 ^
SyntaxError: invalid syntax

答案 3 :(得分:-1)

在python中,你需要使用反斜杠(¥)转义每一行,并且每个字符串都需要与+运算符连接。

女巫就像跟着,

str = "abc" ¥
      + "def" ¥
      + "ghi"