63

I have a really long string in python:

long_string = '
this is a really
really
really
long
string
'

However, since the string spans multiple lines, python doesn't recognize this as a string. How do I fix this?

3
  • 2
    Put it in """...""". """long-long-string""" Commented Dec 20, 2011 at 14:34
  • Aren't triple quotes reserved for doc strings? Commented Apr 17, 2013 at 11:12
  • 4
    @ffledgling it's reserved for multiline strings, which are used for doc strings Commented Mar 2, 2016 at 5:16

5 Answers 5

129

You can also do this, which is nice because you have better control over the whitespace inside of the string:

long_string = (
    'Lorem ipsum dolor sit amet, consectetur adipisicing elit, '
    'sed do eiusmod tempor incididunt ut labore et dolore magna '
    'aliqua. Ut enim ad minim veniam, quis nostrud exercitation '
    'ullamco laboris nisi ut aliquip ex ea commodo consequat. '
    'Duis aute irure dolor in reprehenderit in voluptate velit '
    'esse cillum dolore eu fugiat nulla pariatur. Excepteur sint '
    'occaecat cupidatat non proident, sunt in culpa qui officia '
    'deserunt mollit anim id est laborum.'
)
Sign up to request clarification or add additional context in comments.

4 Comments

Indeed, this is one of the things that I ran into when I wanted to create a tuple with one element ;)
This appears to not work the moment you need any evaluated value that isn't a string. Typically for me, when using list comprehension to implode complex data into a string; and I have not found a way to combine such an expression with this string definition style. :(
You can also use long_string = textwrap.dedent('''long string with each line indented''') docs.python.org/3/library/textwrap.html#textwrap.dedent
FYI: This is the preferred way of declaring a long string in multiple lines. and the accepted answer will introduce next line characters(which are not always needed.)
71
long_string = '''
this is a really
really
really
long
string
'''

""" does the same thing.

3 Comments

In cases where indenting the string's lines makes the code more readable, you can use dedent to remove the indentation in the resulting string.
For me this is adding \n \n characters into the string when printed. How would I avoid this ??
@blissweb Add .replace("\n", " ") on the end.
27

You can use either

long_string = 'fooo' \
'this is really long' \
'string'

or if you need linebreaks

long_string_that_has_linebreaks = '''foo
this is really long
'''

1 Comment

Also, for your first option if you have parentheses round the string you don't need the backslashes. However notice the big drawback with using string concatenation: unless you are really careful about spaces you could end up with "fooothis is really longstring" which probably wasn't what you wanted.
6

I was also able to make it work like this.

long_string = '\
this is a really \
really \
really \
long \
string\
'

I can't find any online references to this way of constructing a multi-line string. I don't know if it's correct. My suspicion is that python is ignoring the newline because of the backslash? Maybe someone can shed light on this.

1 Comment

Also, Sublime Text (Build 3114) seems to have trouble with syntax highlighting this.
0

This is normally a comment but indentation does not seem to work in comments.

In the code below I show how the answer by @ShunYu. , which seems quick to type, compares with the solution by @Superstring in the context of a function definition:

def test() :


    string1='\
The city was bustling with activity as \
people hurried to and fro, going about \
their daily routines.\
\n\
Cars honked their horns, buses roared down the streets, and the air was filled with the sound of chatter and laughter.\
'

    string2=(
    'The city was bustling with activity as '
    'people hurried to and fro, going about '
    'their daily routines.'
    '\n'
    'Cars honked their horns, buses roared down the streets, and the air was filled with the sound of chatter and laughter.'
    )
    print(string1)
    print('\n')
    print(string2)

Output:

The city was bustling with activity as people hurried to and fro, going about their daily routines. Cars honked their horns, buses roared down the streets, and the air was filled with the sound of chatter and laughter.

The city was bustling with activity as people hurried to and fro, going about their daily routines. Cars honked their horns, buses roared down the streets, and the air was filled with the sound of chatter and laughter.

The answer provided by @SuperString allows the string to be indented inside a function whereas the answer by @ShunYu. seems to require removing the indentation..

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.