Escape sekvence umožňují vkládat do řetězců speciální znaky. Chcete-li tak učinit, stačí před znak, který chcete escapovat, přidat zpětné lomítko (\).
Představte si například, že jste inicializovali řetězec s jednoduchými uvozovkami:
s = 'Hey, whats up?'print(s)
Výstup:
Hey, whats up?
Pokud však zahrnete apostrof, aniž byste ho escapovali, zobrazí se chyba:
s = 'Hey, what's up?'print(s)
Výstup:
File "main.py", line 1 s = 'Hey, what's up?' ^SyntaxError: invalid syntax
Chcete-li to napravit, stačí apostrof escapovat:
s = 'Hey, what\'s up?'print(s)
Chcete-li do řetězce přidat nové řádky, použijte \n:
print("Multiline strings\ncan be created\nusing escape sequences.")
Výstup:
Multiline stringscan be createdusing escape sequences.
Důležité je pamatovat na to, že pokud chcete do řetězce zahrnout znak zpětného lomítka, musíte jej escapovat. Chcete-li například vypsat cestu k adresáři v systému Windows, budete muset každé zpětné lomítko v řetězci escapovat:
print("C:\Users\Pat\Desktop")
Výstup:
C:\Users\Pat\Desktop
Surové řetězce
Surový řetězec lze použít tak, že před řetězec vložíte předponu r nebo R, což umožňuje zahrnout zpětná lomítka bez nutnosti jejich escapování. Například:
print(r"Backslashes \ don't need to be escaped in raw strings.")
Výstup:
Backslashes \ don't need to be escaped in raw strings.
Mějte však na paměti, že nezapsaná zpětná lomítka na konci surového řetězce způsobí chybu a:
print(r"There's an unescaped backslash at the end of this string\")
Výstup:
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 sekvence | Význam |
|---|---|
| \ | Zpětné lomítko (\) |
| ‚ | Jednotlivé uvozovky (') |
| „ | Dvojité Citace (") |
| \n | ASCII Linefeed (přidává nový řádek) |
| \b | ASCII Backspace |
Úplný seznam escape sekvencí najdete zde v dokumentaci Pythonu.