syntaxerror: математика «неожиданный символ после символа продолжения строки в python» - PullRequest
4 голосов
/ 17 октября 2011

У меня проблемы с этой программой на 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

Ответы [ 6 ]

12 голосов
/ 17 октября 2011

Оператор деления /, а не \

7 голосов
/ 17 октября 2011

Обратная косая черта \ - это символ продолжения строки, о котором говорится в сообщении об ошибке, и после него разрешены только символы новой строки / пробелы (до того, как следующий непробельный символ продолжит строку «прерванная».

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

Вне строки обратная косая черта может появляться только таким образом. Для деления вам нужна косая черта: /.

Если вы хотите записать дословную обратную косую черту в строке, избегайте ееудвоив его: "\\"

В своем коде вы используете его дважды:

 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")
2 голосов
/ 17 октября 2011

Оператор деления - /, а не \.

Кроме того, обратная косая черта имеет особое значение внутри строки Python. Либо убери его с другой обратной косой чертой:

"\\ 1.5 = "`

или используйте необработанную строку

r" \ 1.5 = "
1 голос
/ 29 января 2018

Вы должны нажать 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"])
0 голосов
/ 17 октября 2011

Как уже упоминалось, оператор деления равен / , а не **.Если вы хотите напечатать символ ** в строке, вам нужно его избежать:

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

Я думаю, что для печати строки, которую вы хотели, я думаю, вам понадобится этот код:

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

И эта версия более читаема (с использованием метода форматирования):

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))
0 голосов
/ 17 октября 2011

Ну, что ты пытаешься сделать?Если вы хотите использовать разделение, используйте «/», а не «\».Если это что-то еще, объясните это более подробно, пожалуйста.

...