آموزش پایتون - کاراکترهای گریز

کاراکتر گریز یا فرار (Escape Character)

یک کاراکتر فرار کاراکتری است که پس از یک بک‌اسلش (\) می‌آید. این کاراکتر به مفسر می‌گوید که این کاراکتر (یا دنباله) فرار دارای معنی خاصی است. برای نمونه، n\ یک دنباله فرار است که نشان‌دهنده یک خط جدید است. وقتی پایتون با این دنباله در یک رشته مواجه می‌شود، متوجه می‌شود که باید یک خط جدید را آغاز کند.

مگر اینکه پیشوند 'r' یا 'R' وجود داشته باشد، دنباله‌های فرار در رشته‌ها و داده‌های بایت طبق قواعدی مشابه استاندارد C تفسیر می‌شوند. در پایتون، اگر قبل از علامت‌های نقل‌قول یک رشته پیشوند "r" یا "R" قرار گیرد، آن رشته به یک رشته خام (raw string) تبدیل می‌شود. بنابراین 'Hello' یک رشته معمولی است، در حالی که r'Hello' یک رشته خام است.

مثال

در مثال زیر، ما به‌صورت عملی رشته خام و معمولی را نشان می‌دهیم.

# normal string
normal = "Hello"
print (normal)

# raw string
raw = r"Hello"
print (raw)

خروجی کد بالا در زیر نشان داده شده است -

Hello
Hello

در شرایط معمولی، هیچ تفاوتی بین این دو وجود ندارد. با این حال، زمانی که کاراکتر فرار درون رشته قرار می‌گیرد، رشته معمولی دنباله فرار را تفسیر می‌کند، در حالی که رشته خام کاراکتر فرار را پردازش نمی‌کند.

مثال

در مثال زیر، وقتی یک رشته معمولی چاپ می‌شود، کاراکتر فرار 'n\' برای ایجاد یک خط جدید پردازش می‌شود. اما به دلیل وجود عملگر 'r' برای رشته خام، اثر کاراکتر فرار طبق معنای آن اعمال نمی‌شود.

normal = "Hello\nWorld"
print (normal)

raw = r"Hello\nWorld"
print (raw)

با اجرای کد بالا، نتیجه زیر چاپ خواهد شد -

Hello
World
Hello\nWorld

کاراکترهای فرار در پایتون

جدول زیر کاراکترهای فرار مختلف مورد استفاده در پایتون را نشان می‌دهد -

شماره دنباله فرار و معنی
1

\<newline>

بک‌اسلش و خط جدید نادیده گرفته می‌شوند

2

\\

بک‌اسلش (\)

3

\'

کوتیشن تک (')

4

\"

کوتیشن مزدوج (")

5

\a

زنگ ASCII (BEL)

6

\b

بک‌اسپیس ASCII (BS)

7

\f

فرم‌فید ASCII (FF)

8

\n

لاین‌فید یا خط جدید ASCII (LF)

9

\r

کریج ریتِرن ASCII (CR)

10

\t

تب افقی ASCII (TAB)

11

\v

تب عمودی ASCII (VT)

12

\ooo

کاراکتر با مقدار هشت‌دهی (Octal) ooo

13

\xhh

کاراکتر با مقدار شانزده‌دهی (Hex) hh

مثال کاراکترهای فرار

کد زیر استفاده از دنباله‌های فرار فهرست‌شده در جدول بالا را نشان می‌دهد -

# ignore \
s = 'This string will not include \
backslashes or newline characters.'
print (s)

# escape backslash
s=s = 'The \\character is called backslash'
print (s)

# escape single quote
s='Hello \'Python\''
print (s)

# escape double quote
s="Hello \"Python\""
print (s)

# escape \b to generate ASCII backspace
s='Hel\blo'
print (s)

# ASCII Bell character
s='Hello\a'
print (s)

# newline
s='Hello\nPython'
print (s)

# Horizontal tab
s='Hello\tPython'
print (s)

# form feed
s= "hello\fworld"
print (s)

# Octal notation
s="\101"
print(s)

# Hexadecimal notation
s="\x41"
print (s)

این کد خروجی زیر را تولید خواهد کرد -

This string will not include backslashes or newline characters.
The \character is called backslash
Hello 'Python'
Hello "Python"
Helo
Hello
Hello
Python
Hello Python
hello
world
A
A

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.