Reputation: 10964
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')
s = 'This is a long '\
'long '\
'string.'
Additional trailing \
characters make reformatting very difficult. Joining two lines with a \
gives an error.
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
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
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