I have the above-mentioned error in s1="some very long string............"
Does anyone know what I am doing wrong?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You are not putting a " before the end of the line.
Use """ if you want to do this:
""" a very long string ...... ....that can span multiple lines """
Method 2
I had this problem – I eventually worked out that the reason was that I’d included characters in the string. If you have any of these, “escape” them with \ and it should work fine.
Method 3
(Assuming you don’t have/want line breaks in your string…)
How long is this string really?
I suspect there is a limit to how long a line read from a file or from the commandline can be, and because the end of the line gets choped off the parser sees something like s1="some very long string.......... (without an ending ") and thus throws a parsing error?
You can split long lines up in multiple lines by escaping linebreaks in your source like this:
s1="some very long string..... ... ...."
Method 4
In my situation, I had rn in my single-quoted dictionary strings. I replaced all instances of r with \r and n with \n and it fixed my issue, properly returning escaped line breaks in the eval’ed dict.
ast.literal_eval(my_str.replace('r','\r').replace('n','\n'))
.....
Method 5
I faced a similar problem. I had a string which contained path to a folder in Windows e.g. C:Users The problem is that is an escape character and so in order to use it in strings you need to add one more .
Incorrect: C:Users
Correct: C:\Users\
Method 6
You can try this:
s = r'longannoyingpath'
Method 7
I too had this problem, though there were answers here I want to an important point to this
after
/ there should not be empty spaces.Be Aware of it
Method 8
I also had this exact error message, for me the problem was fixed by adding an ” ”
It turns out that my long string, broken into about eight lines with ” ” at the very end, was missing a ” ” on one line.
Python IDLE didn’t specify a line number that this error was on, but it red-highlighted a totally correct variable assignment statement, throwing me off. The actual misshapen string statement (multiple lines long with ” ”) was adjacent to the statement being highlighted. Maybe this will help someone else.
Method 9
In my case, I use Windows so I have to use double quotes instead of single.
C:UsersDr. Printer>python -mtimeit -s"a = 0" 100000000 loops, best of 3: 0.011 usec per loop
Method 10
In my case with Mac OS X, I had the following statement:
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
I was getting the error:
File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
^
SyntaxError: EOL while scanning string literal
After I change to:
model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")
It worked…
David
Method 11
I was getting this error in postgresql function. I had a long SQL which I broke into multiple lines with for better readability. However, that was the problem. I removed all and made them in one line to fix the issue. I was using pgadmin III.
Method 12
In my case, I forgot (‘ or “) at the end of string. E.g ‘ABC’ or “ABC”
Method 13
Your variable(s1) spans multiple lines. In order to do this (i.e you want your string to span multiple lines), you have to use triple quotes(“””).
s1="""some very long string............"""
Method 14
In this case, three single quotations or three double quotations both will work!
For example:
"""Parameters:
...Type something.....
.....finishing statement"""
OR
'''Parameters:
...Type something.....
.....finishing statement'''
Method 15
I had faced the same problem while accessing any hard drive directory.
Then I solved it in this way.
import os
os.startfile("D:folder_namefile_name") #running shortcut
os.startfile("F:") #accessing directory
The picture above shows an error and resolved output.
Method 16
Most previous answers are correct and my answer is very similar to aaronasterling, you could also do 3 single quotations
s1=”’some very long string…………”’
Method 17
All code below was tested with Python 3.8.3
Simplest — just use triple quotes.
Either single:
long_string = '''some very long string ............'''
or double:
long_string = """some very long string ............"""
Note: triple quoted strings retain indentation, it means that
long_string = """some
very
long
string
............"""
and
long_string = """some
very
long
string
............"""
or even just
long_string = """ some very long string ............"""
are not the same.
There is a textwrap.dedent function in standard library to deal with this, though working with it is out of question’s scope.
You can, as well, use n inside a string, residing on single line:
long_string = "some nvery nlong nstring n............"
Also, if you don’t need any linefeeds (i.e. newlines) in your string, you can use inside regular string:
long_string = "some very long string ............"
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0
