Cyker
Cyker

Reputation: 10964

Pythonic way of writing a single-line long string

What is the Pythonic way of writing a single-line but long string in program:

s = 'This is a long long string.'

Additionally, the string may need to be formatted with variables:

s = 'This is a {} long long string.'.format('formatted')

Existing Solution 1

s = 'This is a long '\
        'long '\
        'string.'

Additional trailing \ characters make reformatting very difficult. Joining two lines with a \ gives an error.

Existing Solution 2

s = 'This is a long \
long \
string.'

Except for a similar problem as above, subsequent lines must be aligned at the very beginning, which gives awkward readability when the first line is indented.

Upvotes: 6

Views: 5666

Answers (2)

rgilligan
rgilligan

Reputation: 804

For long strings where you don't want \n characters, use 'string literal concatenation':

s = (
    'this '
    'is '
    'a '
    'long '
    'string')

Output:

This is a long string

And it can be formatted as well:

s = (
    'this '
    'is '
    'a '
    '{} long '
    'string').format('formatted')

Output:

This is a formatted long string

Upvotes: 11

Denny
Denny

Reputation: 744

Here's the PEP8 guideline: https://www.python.org/dev/peps/pep-0008/#maximum-line-length

Wrap long lines in parenthesis.

Use a maximum of 72 characters per line for long lines of text.

If you have any operators in your string, place the line breaks before them.

Other than that, as long as you're not obscuring what's going on, it's pretty much up to you on how you want to do it.

Upvotes: 1

Related Questions