У меня есть вышеупомянутая ошибка в s1="some very long string............"
Кто-нибудь знает, что я делаю не так?
У меня есть вышеупомянутая ошибка в s1="some very long string............"
Кто-нибудь знает, что я делаю не так?
Вы не помещаете "
до конца строки.
Используйте """
, если вы хотите сделать это:
""" a very long string ......
....that can span multiple lines
"""
У меня была эта проблема. В конечном итоге я решил, что причина в том, что в строку были включены символы \
. Если у вас есть что-то из этого, "сбегите" с помощью \\
, и он должен работать нормально.
(Предполагая, что у вас нет/хотите разрывы строк в вашей строке...)
Как долго эта строка действительно?
Я подозреваю, что существует ограничение на длительность строки, считанной из файла или из командной строки, и потому, что конец строки набирается, парсер видит что-то вроде s1="some very long string..........
(без конца "
) и таким образом выдает ошибку синтаксического анализа?
Вы можете разделить длинные строки в нескольких строках, выделив строки в вашем источнике следующим образом:
s1="some very long string.....\
...\
...."
В моей ситуации я имел \r\n
в моих словарных строках с одним кавычком. Я заменил все экземпляры \r
на \\r
и \n
на \\n
, и он исправил мою проблему, правильно вернув экранированные разрывы строк в eval'ed dict.
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
У меня тоже была эта проблема, хотя были ответы здесь, я хочу, чтобы важный момент для этого
после
/
не должно быть пустых пространств. Осознавая его
У меня возникла аналогичная проблема. У меня была строка, содержащая путь к папке в Windows, например. C:\Users\
Проблема заключается в том, что \
является escape-символом, поэтому для его использования в строках вам нужно добавить еще один \
.
Неверно: C:\Users\
Правильно: C:\\\Users\\\
У меня также было это точное сообщение об ошибке, для меня проблема была исправлена добавлением "\"
Оказывается, что моя длинная строка, разбитая на восемь строк с "\" в самом конце, отсутствовала "\" на одной строке.
Идентификатор Python не указывал номер строки, в которой эта ошибка была включена, но она красно-подчеркнула полностью правильную инструкцию присваивания переменной, отбрасывая меня. Фактическое выражение о некорректной строке (несколько строк длиной с "\" ) было смежным с выделенным выражением. Возможно, это поможет кому-то другому.
В моем случае я использую Windows, поэтому мне нужно использовать двойные кавычки вместо одиночного.
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
Я получаю эту ошибку в функции postgresql. У меня был длинный SQL, который я разбил на несколько строк с\для лучшей читаемости. Однако это была проблема. Я удалил все и сделал их в одну строку, чтобы исправить проблему. Я использовал pgadmin III.
В моем случае с Mac OS X у меня было следующее утверждение:
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib)
Я получаю ошибку:
File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib)
^
SyntaxError: EOL while scanning string literal
После того, как я перехожу на:
model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")
Это сработало...
Дэвид
Ваша variable(s1)
занимает несколько строк. Чтобы сделать это (т.е. вы хотите, чтобы ваша строка занимала несколько строк), вы должны использовать тройные кавычки ("" ").
s1="""some very long
string............"""