summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-09-06 18:41:15 (GMT)
committerFred Drake <fdrake@acm.org>2001-09-06 18:41:15 (GMT)
commitba5c41d4c5ef5cea34892273f8fac908befbb436 (patch)
treec89f38f509dccb87b7eb33d8706f1da423958a0f /Doc
parent8b09f4985ce02d4ae8dc63b67e498293488f0dca (diff)
downloadcpython-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')
-rw-r--r--Doc/tut/tut.tex33
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}