2017-03-16 13 views
0

2つのステートメントの違いは何ですか?変数<p>のhtmlタグに変数を出力したいとします。両方のステートメントは同じことをしますが、私はエラーを出します。Pythonの文字列連結

作品最初の文:

out += "</p><p style=""background-color:white"">" 
out += uSetMinF 
out += "</p><p>" 

に動作しない第二1:

out += "<p style=""background-color:white"">"uSetMinF"</p>" 

ここに私が取得エラーです:

最初ものの
out += "<p style=""background-color:white"">"uSetMinF"</p>" 
                ^
SyntaxError: invalid syntax 

私はむしろ、時間を節約し、それは少し少ないコードですので、私はむしろ2番目のものを使用したいと思います。私はそれがセマンティクスだと知っていますが、私はまた好奇心です。誰かが答えを知っているなら、私に教えてください、ありがとう。

out += "<p style=""background-color:white"">" + uSetMinF + "</p>" 

これはあなたの最初の例と同じ、しかし、あなたが望むもののために、おそらく間違っている:あなたは+演算子を使用する必要がリテラル文字列と変数を連結する

答えて

2

<p style=background-color:white>whatever uSetMinF is</p> 

style値の前後に引用符がありません:結果の文字列は次のようになります。それは

"<p style=" "background-color:white" ">" 

すなわち、3つの別々の文字列リテラルであるかのようにPythonは

"<p style=""background-color:white"">" 

を扱うためです。変数と比較して、Pythonは+演算子を必要とせずに連続した文字列リテラルを連結します。

あなたが引用符で囲まれた文字列に引用符を保存したい場合は、次の2つのオプションがあります。

out += "<p style=\"background-color:white\">" + uSetMinF + "</p>"

  • ミックスシングルと二重引用符:

    1. は、内側の引用符をエスケープ

      out += '<p style="background-color:white">' + uSetMinF + '</p>'

  • 0

    引用符は、文字列を囲み、エスケープするためにバックスラッシュを使用したり、一重引用符を使用するために使用されます。 '最初のAND最後に