SyntaxError: f-string expression part cannot include a backslash [duplicate]

This is currently a limitation of f-strings in python. Backslashes aren’t allowed in them at all (see https://mail.python.org/pipermail/python-dev/2016-August/145979.html)

Option 1

The best way would be to instead use use str.format() to accomplish this, per https://docs.python.org/3/library/stdtypes.html#str.format

Option 2

If you’re super keen on using backslashes, you could do something like this:

backslash_char = "\\"
my_string = f"{backslash_char}foo{bar}"

But that’s probably not the best way to make your code readable to other people.

Option 3

If you’re absolutely certain you’ll never use a particular character, you could also put in that character as a placeholder, something like

my_string = f"🍔foo{bar}".replace("🍔", "\\")

But that’s also super workaround-y. And it’s a great way to introduce bugs down the road, if you ever get an input with that char in it.

Option 4

As mentioned in the comments to this answer, another option would be to do chr(92) inside some curlies, as below:

my_string = f"This is a backslash: {chr(92)}"

Leave a Comment