16

数学を実行したり、解決したりするために作成しているこのPythonプログラムに問題がありますが、構文エラーが発生しています:「pythonの行継続文字の後に予期しない文字が発生しました」

これは私のコードです

print("Length between sides: "+str((length*length)*2.6)+" \ 1.5 = "+str(((length*length)*2.6)\1.5)+" Units")

私の問題は\1.5にあります\ 1.5を試しましたが、うまくいきません

Python 2.7.2 の使用

4

6 に答える 6

25

除算演算子は/、ではありません\

于 2011-10-17T09:47:38.540 に答える
17

バックスラッシュ\は、エラーメッセージが話している行継続文字であり、その後、改行文字/空白のみが許可されます(次の非空白が「中断された」行を継続する前.

print "This is a very long string that doesn't fit" + \
      "on a single line"

文字列の外では、バックスラッシュはこの方法でのみ表示できます。除算には、スラッシュが必要です: /.

文字列にバックスラッシュをそのまま書きたい場合は、2 倍にしてエスケープします。"\\"

あなたのコードでは、それを 2 回使用しています。

 print("Length between sides: " + str((length*length)*2.6) +
       " \ 1.5 = " +                   # inside a string; treated as literal
       str(((length*length)*2.6)\1.5)+ # outside a string, treated as line cont
                                       # character, but no newline follows -> Fail
       " Units")
于 2011-10-17T09:46:11.607 に答える
6

継続文字の後に Enter キーを押す必要があります

注: 継続文字の後のスペースはエラーにつながります

cost = {"apples": [3.5, 2.4, 2.3], "bananas": [1.2, 1.8]}

0.9 * average(cost["apples"]) + \ """enter here"""
0.1 * average(cost["bananas"])
于 2018-01-29T16:01:24.563 に答える
2

除算演算子は/ではなく です\

また、バックスラッシュは Python 文字列内で特別な意味を持ちます。別のバックスラッシュでエスケープするか:

"\\ 1.5 = "`

または生の文字列を使用する

r" \ 1.5 = "
于 2011-10-17T09:42:07.650 に答える
0

さて、あなたは何をしようとしていますか?除算を使用する場合は、「\」ではなく「/」を使用してください。それ以外の場合は、もう少し詳しく説明してください。

于 2011-10-17T09:47:01.947 に答える
0

他の人がすでに述べたように、除算演算子は* *ではなく/です。文字列内の * *文字を出力したい場合は、エスケープする必要があります:

print("foo \\")
# will print: foo \

必要な文字列を出力するには、次のコードが必要になると思います。

print("Length between sides: " + str((length*length)*2.6) + " \\ 1.5 = " + str(((length*length)*2.6)/1.5) + " Units")

そして、これは上記のより読みやすいバージョンです (format メソッドを使用):

message = "Length between sides: {0} \\ 1.5 = {1} Units"
val1 = (length * length) * 2.6
val2 = ((length * length) * 2.6) / 1.5
print(message.format(val1, val2))
于 2011-10-17T09:59:43.730 に答える