diff options
author | Fred Drake <fdrake@acm.org> | 2001-09-06 18:41:15 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2001-09-06 18:41:15 (GMT) |
commit | ba5c41d4c5ef5cea34892273f8fac908befbb436 (patch) | |
tree | c89f38f509dccb87b7eb33d8706f1da423958a0f /Doc/tut | |
parent | 8b09f4985ce02d4ae8dc63b67e498293488f0dca (diff) | |
download | cpython-ba5c41d4c5ef5cea34892273f8fac908befbb436.zip cpython-ba5c41d4c5ef5cea34892273f8fac908befbb436.tar.gz cpython-ba5c41d4c5ef5cea34892273f8fac908befbb436.tar.bz2 |
Clarified the interaction between string literals and continuation lines.
Fixes bug reported as SF bug #453728.
Diffstat (limited to 'Doc/tut')
-rw-r--r-- | Doc/tut/tut.tex | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex index e851ea6..7314a87 100644 --- a/Doc/tut/tut.tex +++ b/Doc/tut/tut.tex @@ -526,18 +526,22 @@ double quotes: '"Isn\'t," she said.' \end{verbatim} -String literals can span multiple lines in several ways. Newlines can -be escaped with backslashes: +String literals can span multiple lines in several ways. Continuation +lines can be used, with a backslash as the last character on the line +indicating that the next line is a logical continuation of the line: \begin{verbatim} hello = "This is a rather long string containing\n\ several lines of text just as you would do in C.\n\ Note that whitespace at the beginning of the line is\ - significant.\n" + significant." + print hello \end{verbatim} -which would print the following: +Note that newlines would still need to be embedded in the string using +\code{\e n}; the newline following the trailing backslash is +discarded. This example would print the following: \begin{verbatim} This is a rather long string containing @@ -545,8 +549,27 @@ several lines of text just as you would do in C. Note that whitespace at the beginning of the line is significant. \end{verbatim} +If we make the string literal a ``raw'' string, however, the +\code{\e n} sequences are not converted to newlines, but the backslash +at the end of the line, and the newline character in the source, are +both included in the string as data. Thus, the example: + +\begin{verbatim} +hello = r"This is a rather long string containing\n\ +several lines of text much as you would do in C." + +print hello +\end{verbatim} + +would print: + +\begin{verbatim} +This is a rather long string containing\n\ +several lines of text much as you would do in C. +\end{verbatim} + Or, strings can be surrounded in a pair of matching triple-quotes: -\code{"""} or \code {'''}. End of lines do not need to be escaped +\code{"""} or \code{'\code{'}'}. End of lines do not need to be escaped when using triple-quotes, but they will be included in the string. \begin{verbatim} |