This one is a bit tricky I think.
if I have:
a = "fwd"
b = "\fwd"
how can I ignore the "\"
so something like
print[a in b]
can evaluate to True?
asked Apr 14, 2016 at 13:00
5
You don't have fwd
in b
. You have wd
, preceded by ASCII codepoint 0C, the FORM FEED character. That's the value Python puts there when you use a \f
escape sequence in a regular string literal.
Double the backslash if you want to include a backslash or use a raw string literal:
b = '\\fwd'
b = r'\fwd'
Now a in b
works:
>>> 'fwd' in '\\fwd'
True
>>> 'fwd' in r'\fwd'
True
See the String literals documentation:
Unless an
'r'
or'R'
prefix is present, escape sequences in strings are interpreted according to rules similar to those used by Standard C. The recognized escape sequences are:[...]
\f
ASCII Formfeed [FF]
jfs
382k180 gold badges946 silver badges1617 bronze badges
answered Apr 14, 2016 at 13:05
Martijn Pieters♦Martijn Pieters
987k274 gold badges3881 silver badges3239 bronze badges
One way of doing it using raw strings:
>>> a = "fwd"
>>> b = "\fwd"
>>> a in b
False
>>> a = r"fwd"
>>> b = r"\fwd"
>>> a in b
True
The relevant docs
answered Apr 14, 2016 at 13:04
jDojDo
3,8221 gold badge10 silver badges30 bronze badges
You need to "escape" the backslash, as in:
b = '\\fwd'
Otherwise, it reads the single backslash + f as an ASCII character [a formfeed].
Here's an example.
>>> a='fwd'
>>> b='\fwd'
>>> c='\\fwd'
>>> a in b
False
>>> a in c
True
answered Apr 14, 2016 at 13:05
rajah9rajah9
11k4 gold badges42 silver badges56 bronze badges
Summary: in this tutorial, you’ll learn about the Python backslash character as a part of a special sequence character or to escape characters in a string.
Introduction to the Python backslash
In Python, the backslash[\
] is a special character. If you use the backslash in front of another character, it changes the meaning of that character.
For example, the t
is a literal character. But if you use the
backslash character in front of the letter t
, it’ll become the tab character [\t
].
Generally, the backslash has two main purposes.
First, the backslash character is a part of special character sequences such as the tab character \t
or the new line character \n
.
The following example prints a string that has a newline character:
Code language: PHP [php]
print['Hello,\n World']
Output:
Hello, World
The \n is a single character, not two. For example:
Code language: PHP [php]
s = '\n' print[len[s]] # 1
Second, the backslash
[\
] escape other special characters. For example, if you have a string that has a single quote inside a single-quoted string like the following string, you need to use the backslash to escape the single quote character:
Code language: PHP [php]
s = '"Python\'s awesome" She said' print[s]
Output:
Code language: JavaScript [javascript]
"Python's awesome" She said
Backslash in f-strings
PEP-498 specifies that an f-string cannot contain a backslash character as a part of the expression inside
the curly braces {}
.
The following example will result in an error:
Code language: PHP [php]
colors = ['red','green','blue'] s = f'The RGB colors are:\n {'\n'.join[colors]}' print[s]
Error:
Code language: JavaScript [javascript]
SyntaxError: f-string expression part cannot include a backslash
To fix this, you need to join the strings in the colors
list before placing them in the curly braces:
Code language: PHP [php]
colors = ['red','green','blue'] rgb = '\n'.join[colors] s = f"The RGB colors are:\n{rgb}" print[s]
Output:
The RGB colors are: red green blue
Backslash in raw strings
Raw strings treat the backslash character [\
] as a literal character. The following example treats the backslash
character \
as a literal character, not a special character:
Code language: PHP [php]
s = r'\n' print[s]
Output:
\n
Summary
- The python backslash character [
\
] is a special character used as a part of a special sequence such as\t
and\n
. - Use the Python backslash [
\
] to escape other special characters in a string. - F-strings cannot contain the backslash a part of expression inside the curly braces
{}
. - Raw strings treat the backslash [\] as a literal character.
Did you find this tutorial helpful ?