Escape sequenties staan u toe om speciale karakters in strings op te nemen. Om dit te doen, voegt u een backslash (\
) toe vóór het teken dat u wilt escapen.
Stelt u zich bijvoorbeeld voor dat u een tekenreeks hebt geïnitialiseerd met enkele aanhalingstekens:
s = 'Hey, whats up?'print(s)
Uitvoer:
Hey, whats up?
Maar als u een apostrof invoegt zonder deze te escapen, dan krijgt u een foutmelding:
s = 'Hey, what's up?'print(s)
Uitvoer:
File "main.py", line 1 s = 'Hey, what's up?' ^SyntaxError: invalid syntax
Om dit te verhelpen, escapet u gewoon de apostrof:
s = 'Hey, what\'s up?'print(s)
Om newlines aan je string toe te voegen, gebruik je \n
:
print("Multiline strings\ncan be created\nusing escape sequences.")
Output:
Multiline stringscan be createdusing escape sequences.
Een belangrijk ding om te onthouden is dat, als je een backslash karakter in een string wilt opnemen, je dat moet escapen. Als u bijvoorbeeld een mappad in Windows wilt afdrukken, moet u elke backslash in de tekenreeks escapen:
print("C:\Users\Pat\Desktop")
Uitvoer:
C:\Users\Pat\Desktop
Ruwe tekenreeksen
Een ruwe tekenreeks kan worden gebruikt door de tekenreeks te laten voorafgaan door r
of R
, waardoor backslashes kunnen worden opgenomen zonder dat u ze hoeft te escapen. Bijvoorbeeld:
print(r"Backslashes \ don't need to be escaped in raw strings.")
Uitvoer:
Backslashes \ don't need to be escaped in raw strings.
Maar onthoud dat niet-geëscaped backslashes aan het eind van een raw string een foutmelding zal veroorzaken:
print(r"There's an unescaped backslash at the end of this string\")
Uitvoer:
File "main.py", line 1 print(r"There's an unescaped backslash at the end of this string\") ^SyntaxError: EOL while scanning string literal
Escape Sequence | Meaning |
---|---|
Backslash (\ ) |
|
‘ | Single quote (' ) |
“ | Double aanhalingsteken (" ) |
Nieuwe regel | ASCII Linefeed (voegt nieuwe regel toe) |
B | ASCII Backspace |
Een volledige lijst van escape-sequenties kan hier worden gevonden in de Python docs.