Az eszcape-szekvenciák lehetővé teszik speciális karakterek beillesztését a karakterláncokba. Ehhez egyszerűen adjunk egy backslash-t (\) a menekíteni kívánt karakter elé.

Elképzeljük például, hogy egy szimpla idézőjelekkel inicializáltál egy karakterláncot:

s = 'Hey, whats up?'print(s)

Kimenet:

Hey, whats up?

De ha egy aposztrófot is beillesztesz anélkül, hogy kitérítenéd, akkor hibát kapsz:

s = 'Hey, what's up?'print(s)

Kimenet:

 File "main.py", line 1 s = 'Hey, what's up?' ^SyntaxError: invalid syntax

Az eset kijavításához egyszerűen lépd ki az aposztrófot:

s = 'Hey, what\'s up?'print(s)

Ha újsorokat akarsz hozzáadni a karakterláncodhoz, használd a \n:

print("Multiline strings\ncan be created\nusing escape sequences.")

Kimenet:

Multiline stringscan be createdusing escape sequences.

Egy fontos dolog, amit nem szabad elfelejtened, hogy ha backslash karaktert akarsz beilleszteni a karakterláncba, akkor azt is ki kell kerülnöd. Ha például egy könyvtár elérési útvonalát szeretné kinyomtatni Windowsban, akkor a karakterláncban minden egyes backslash karaktert escape-elni kell:

print("C:\Users\Pat\Desktop")

Output:

C:\Users\Pat\Desktop

Raw string

A nyers karakterláncot úgy használhatja, hogy a karakterlánc elé r vagy R karaktert ír, ami lehetővé teszi a backslash karakterek szerepeltetését anélkül, hogy azokat escape-elni kellene. Például:

print(r"Backslashes \ don't need to be escaped in raw strings.")

Kimenet:

Backslashes \ don't need to be escaped in raw strings.

De ne feledje, hogy a nyers karakterlánc végén lévő nem szedhető backslashek hibát okoznak:

print(r"There's an unescaped backslash at the end of this string\")

Kimenet:

 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 (\)
Egyszeres idézőjel (')
Dupla Idézőjel (")
\n ASCII Linefeed (új sor hozzáadása)
\b ASCII Backspace

A menekülési szekvenciák teljes listája itt található a Python dokumentációban.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.