summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2016-11-06 16:27:17 (GMT)
committerJason R. Coombs <jaraco@jaraco.com>2016-11-06 16:27:17 (GMT)
commitf66f03bd358c3c481292f2624b8c947f4f77c370 (patch)
tree33da005b83f110631afc22b2666ae8eae22857fa
parent1c92a76a69a4024316ddc6d20245b70ad830ade7 (diff)
downloadcpython-f66f03bd358c3c481292f2624b8c947f4f77c370.zip
cpython-f66f03bd358c3c481292f2624b8c947f4f77c370.tar.gz
cpython-f66f03bd358c3c481292f2624b8c947f4f77c370.tar.bz2
Update docs to reflect new behavior around backslashes in expressions (not allowed), matching recent changes to PEP 498.
-rw-r--r--Doc/reference/lexical_analysis.rst19
1 files changed, 12 insertions, 7 deletions
diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst
index a7c6a68..da7017a 100644
--- a/Doc/reference/lexical_analysis.rst
+++ b/Doc/reference/lexical_analysis.rst
@@ -679,17 +679,22 @@ Some examples of formatted string literals::
A consequence of sharing the same syntax as regular string literals is
that characters in the replacement fields must not conflict with the
-quoting used in the outer formatted string literal. Also, escape
-sequences normally apply to the outer formatted string literal,
-rather than inner string literals::
+quoting used in the outer formatted string literal::
f"abc {a["x"]} def" # error: outer string literal ended prematurely
- f"abc {a[\"x\"]} def" # workaround: escape the inner quotes
f"abc {a['x']} def" # workaround: use different quoting
- f"newline: {ord('\n')}" # error: literal line break in inner string
- f"newline: {ord('\\n')}" # workaround: double escaping
- fr"newline: {ord('\n')}" # workaround: raw outer string
+Backslashes are not allowed in format expressions and will raise
+an error::
+
+ f"newline: {ord('\n')}" # raises SyntaxError
+
+To include a value in which a backslash escape is required, create
+a temporary variable.
+
+ >>> newline = ord('\n')
+ >>> f"newline: {newline}"
+ 'newline: 10'
See also :pep:`498` for the proposal that added formatted string literals,
and :meth:`str.format`, which uses a related format string mechanism.