-4
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

4 に答える 4

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])

于 2013-05-27T05:55:11.103 に答える
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)
于 2013-05-27T06:01:26.527 に答える
1

これは、SyntaxError がコンパイラが言う場所とほぼ同じであるまれなケースの 1 つです。

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' + .... 2 つの文字列リテラルを問題なく並べることができますが (Python はそれらを 1 つの文字列として扱います)、この段階で Python は次のように認識します。

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

これは常に構文エラーです。これらの間に演算子が必要です。おそらく+. 隣り合う文字列のトリックは、リテラルでのみ機能します。たとえば、次のことができます。

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

だがしかし:

>>> x = 'fred'
>>> x 'flintstone'
  File "<stdin>", line 1
    x 'flintstone'
                 ^
SyntaxError: invalid syntax
于 2013-05-27T06:16:05.250 に答える
-1

Python では、各行をバック スラッシュ (\) でエスケープする必要があり、各文字列は + 演算子で結合する必要があります。

魔女は次のように、

str = "abc" ¥
      + "def" ¥
      + "ghi"
于 2013-05-27T06:01:35.237 に答える