[New-bugs-announce] [issue30793] Parsing error on f-string-expressions containing strings with backslash

Anselm Kiefner report at bugs.python.org
Wed Jun 28 14:58:13 EDT 2017


New submission from Anselm Kiefner:

Considering that

x = 3
f"{'hello' if x == 3 else 'goodbye'} world"

is a simple, elegant and powerful piece of code that works just as expected by itself, I often find myself stumbling and wondering why
 
f"text {'\n' if x == 3 else ''} text"

fails horribly just because of the \ within the extra quoted string that must be worked around with ugly code like

nl = "\n"
f"text {nl if x==3 else ''} text"

which really doesn't feel like python at all.

I am aware that the specification for f-strings says "no \ in expressions", but please consider that in this case, the \ is not really part of the expression but rather part of a string that isn't evaluated as part of the expression, which might just as well be referenced to by a variable.

----------
messages: 297206
nosy: Anselm Kiefner
priority: normal
severity: normal
status: open
title: Parsing error on f-string-expressions containing strings with backslash
type: behavior
versions: Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue30793>
_______________________________________


More information about the New-bugs-announce mailing list