Hot deal hosting vps vietnix tháng 2Hot deal hosting vps vietnix tháng 2
PHP
Python

Trang chủ

Tìm hiều về ký tự thoát trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
11/02/2025
9 phút đọc
Theo dõi Vietnix trên

Tìm hiều về ký tự thoát trong Python

Trong lập trình Python, đôi khi bạn sẽ cần biểu diễn những ký tự đặc biệt, không thể hiển thị trực tiếp trong chuỗi. Đó là lúc ký tự thoát (escape characters) giúp ích cho bạn. Ký tự này đưa các ký tự như dấu xuống dòng, dấu tab, hoặc thậm chí là dấu nháy vào trong chuỗi một cách dễ dàng. Vậy cụ thể, ký tự thoát trong Python là gì và chúng được sử dụng như thế nào? Hãy cùng tìm hiểu chi tiết hơn trong bài viết này.

Các điểm chính

Khi đọc xong bài viết, bạn sẽ:

  • Hiểu rõ khái niệm ký tự thoát trong Python: Người đọc sẽ nắm vững định nghĩa ký tự thoát là gì, tại sao cần sử dụng ký tự thoát trong lập trình Python.
  • Nắm được bảng ký tự thoát thông dụng: Người đọc sẽ biết và ghi nhớ các ký tự thoát phổ biến (như \n, \t, \\, \", \') và công dụng của từng ký tự.
  • Biết cách sử dụng ký tự thoát trong thực tế: Thông qua các ví dụ minh họa, người đọc sẽ biết cách áp dụng ký tự thoát để định dạng chuỗi, xử lý các ký tự đặc biệt trong Python.
  • Xây dựng nền tảng vững chắc để tiếp tục học lập trình Python: Hiểu rõ ký tự thoát là một bước quan trọng để bạn có thể tiếp tục tìm hiểu sâu hơn về ngôn ngữ lập trình Python
  • Tiết kiệm thời gian học và tiếp thu nhanh chóng kiến thức: Kiến thức đã được tối ưu và phù hợp với bạn đọc là người mới.

Ký tự thoát trong Python là gì?

Ký tự thoát là một ký tự đặc biệt được theo sau bởi dấu gạch chéo ngược (\). Ký tự thoát báo cho trình thông dịch Python biết rằng ký tự (hoặc chuỗi ký tự) đi sau dấu gạch chéo ngược có một ý nghĩa đặc biệt. Ví dụ, \n là một chuỗi thoát đại diện cho ký tự xuống dòng mới. Khi Python gặp chuỗi này trong một chuỗi, Python sẽ hiểu rằng cần phải bắt đầu một dòng mới tại vị trí đó.

Ký tự thoát là một ký tự đặc biệt được theo sau bởi dấu gạch chéo ngược (\)
Ký tự thoát là một ký tự đặc biệt được theo sau bởi dấu gạch chéo ngược (\)

Trừ khi có tiền tố 'r' hoặc 'R', các chuỗi thoát trong chuỗi ký tự và chuỗi byte (bytes literals) sẽ được diễn giải theo các quy tắc tương tự như quy tắc được sử dụng trong Standard C. Trong Python, một chuỗi trở thành chuỗi “thô” (raw string) nếu chuỗi đó có tiền tố "r" hoặc "R" đứng trước dấu nháy. Vì vậy, 'Hello' là một chuỗi thông thường trong khi r'Hello' là một chuỗi thô.

Hãy xem ví dụ dưới đây để thấy sự khác biệt giữa chuỗi thông thường và chuỗi thô, áp dụng vào tình huống in đường dẫn file trong hệ điều hành:

# Chuỗi thông thường
duong_dan_thuong = "C:\thu_muc\noi_dung\ten_file.txt"
print(duong_dan_thuong)

# Chuỗi thô
duong_dan_tho = r"C:\thu_muc\noi_dung\ten_file.txt"
print(duong_dan_tho)

Kết quả của đoạn code trên:

C: hu_muc
oi_dung en_file.txt
C:\thu_muc\noi_dung\ten_file.txt

Giải thích:

  • Chuỗi thông thường (duong_dan_thuong): Khi Python diễn giải chuỗi này, Python gặp các ký tự \t (tab) và \n (newline) và coi đó là các ký tự thoát. Vì vậy, Python sẽ chèn một ký tự tab vào vị trí \t và xuống dòng ở vị trí \n.
  • Chuỗi thô (duong_dan_tho): Vì chuỗi này có tiền tố r, Python sẽ coi toàn bộ chuỗi là “thô” – tức là mọi ký tự trong chuỗi đều được giữ nguyên, không có ký tự nào được coi là ký tự thoát cả. Do đó, Python in ra đúng đường dẫn ban đầu.

Trong trường hợp bình thường, không có sự khác biệt giữa chuỗi thông thường và chuỗi thô. Tuy nhiên, khi một ký tự thoát được nhúng vào trong chuỗi, chuỗi thông thường sẽ diễn giải chuỗi thoát đó, trong khi chuỗi thô sẽ không xử lý ký tự thoát.

Ví dụ sau đây minh họa rõ hơn điều này. Ta sẽ in ra một đoạn văn bản, một lần sử dụng chuỗi thông thường và một lần sử dụng chuỗi thô, và xem kết quả khác nhau như thế nào.

# Chuỗi thông thường
van_ban_thuong = "Xin chào!\nHẹn gặp lại."
print(van_ban_thuong)

# Chuỗi thô
van_ban_tho = r"Xin chào!\nHẹn gặp lại."
print(van_ban_tho)

Khi chạy đoạn mã trên, kết quả sẽ là:

Xin chào!
Hẹn gặp lại.
Xin chào!\nHẹn gặp lại.

Giải thích chi tiết:

  • Chuỗi thông thường (van_ban_thuong): Khi Python gặp ký tự \n (ký tự xuống dòng) trong chuỗi, Python sẽ diễn giải ký tự thoát \n này thành một dấu xuống dòng thực sự. Do đó, “Hẹn gặp lại.” được in ở dòng tiếp theo.
  • Chuỗi thô (van_ban_tho): Vì chuỗi này được khai báo với tiền tố r, Python bỏ qua, không diễn giải ký tự thoát. Python sẽ giữ nguyên ký tự \n như một phần của chuỗi, và in ra chính xác như những gì bạn thấy trong code.

Bảng ký tự thoát trong Python

Bảng sau đây liệt kê các ký tự thoát khác nhau được sử dụng trong Python:

Ký Tự ThoátÝ Nghĩa
\<newline>Dấu gạch chéo ngược và ký tự xuống dòng (newline) được bỏ qua
\\Dấu gạch chéo ngược (\)
\'Dấu nháy đơn (')
\"Dấu nháy kép (")
\aChuông ASCII (BEL)
\bXóa lùi ASCII (BS) – Đưa con trỏ về lại một vị trí
\fĐẩy trang ASCII (FF)
\nXuống dòng ASCII (LF) – Đưa con trỏ xuống dòng mới
\rVề đầu dòng ASCII (CR) – Đưa con trỏ về đầu dòng hiện tại
\tTab ngang ASCII (TAB)
\vTab dọc ASCII (VT)
\oooKý tự có giá trị bát phân ooo (ooo là các số từ 0 đến 7)
\xhhKý tự có giá trị thập lục phân hh (hh là các số và ký tự từ 0-9, A-F)

Ví dụ về ký tự thoát trong Python

Đoạn code dưới đây minh họa cách sử dụng các chuỗi thoát (escape sequences) đã được liệt kê trong bảng (bảng mà chúng ta không đề cập đến ở đây, nhưng nó chứa các chuỗi thoát như \n, \t, ...):

# Bỏ qua ký tự xuống dòng
chuoi = 'Chuỗi này sẽ không xuống dòng \
dù có dấu gạch chéo ngược.'
print(chuoi)

# Thoát dấu gạch chéo ngược
chuoi = 'Dấu \\ là ký tự gạch chéo ngược'
print(chuoi)

# Thoát dấu nháy đơn
chuoi = 'Xin chào \'Python\''
print(chuoi)

# Thoát dấu nháy kép
chuoi = "Xin chào \"Python\""
print(chuoi)

# Ký tự xóa lùi (backspace)
chuoi = 'Xo\ba lùi' # \b sẽ xoá ký tự trước nó
print(chuoi)

# Ký tự chuông ASCII (bell)
chuoi = 'Chuông\a' # Phát ra tiếng bíp (tuỳ hệ thống)
print(chuoi)

# Xuống dòng mới (newline)
chuoi = 'Xin chào\nPython'
print(chuoi)

# Tab ngang (horizontal tab)
chuoi = 'Xin chào\tPython'
print(chuoi)

# Form feed (tách trang)
chuoi = "Đầu trang\fCuối trang"
print(chuoi)

# Ký tự ở dạng bát phân
chuoi = "\117"  # 117 trong bát phân tương ứng chữ 'O' (hoa) trong ASCII
print(chuoi)

# Ký tự ở dạng thập lục phân
chuoi = "\x4F"  # 4F trong thập lục phân tương ứng 'O' (hoa) trong ASCII
print(chuoi)

Kết quả khi chạy:

Chuỗi này sẽ không xuống dòng dù có dấu gạch chéo ngược.
Dấu \ là ký tự gạch chéo ngược
Xin chào ‘Python’
Xin chào “Python”
Xo lùi
Chuông
Xin chào
Python
Xin chào Python
Đầu trang
Cuối trang
O
O

Giải thích từng phần:

  • chuoi = 'Chuỗi này sẽ không xuống dòng \ dù có dấu gạch chéo ngược.': Dấu gạch chéo ngược (\) ở cuối dòng ngay trước dấu xuống dòng (enter) sẽ báo hiệu Python rằng đây là một dòng code liên tục, bỏ qua ký tự xuống dòng. Dòng này và dòng sau nó, Python coi nó là cùng một dòng.
  • chuoi = 'Dấu \\ là ký tự gạch chéo ngược': Để hiển thị dấu gạch chéo ngược, ta cần dùng hai dấu \\. Một dấu \ được coi là ký tự bắt đầu chuỗi thoát.
  • chuoi = 'Xin chào \'Python\'': Dùng \' để hiển thị dấu nháy đơn bên trong một chuỗi được bao quanh bởi dấu nháy đơn.
  • chuoi = "Xin chào \"Python\"": Dùng \" để hiển thị dấu nháy kép bên trong một chuỗi được bao quanh bởi dấu nháy kép.
  • chuoi = 'Xo\ba lùi': \b xóa ký tự ngay trước nó (ở đây là chữ ‘a’). Kết quả hiển thị “Xo lùi”.
  • chuoi = 'Chuông\a': \a tạo ra âm thanh chuông (bell) trên một số hệ thống (thường là tiếng bíp).
  • chuoi = 'Xin chào\nPython': \n tạo ra một dòng mới. Kết quả là “Xin chào” ở một dòng và “Python” ở dòng tiếp theo.
  • chuoi = 'Xin chào\tPython': \t tạo ra một khoảng tab ngang.
  • chuoi = "Đầu trang\fCuối trang": Ký tự form feed, đưa con trỏ in sang một trang in mới.
  • chuoi = "\117": \117 biểu diễn ký tự có mã ASCII ở dạng bát phân là 117 (chữ ‘O’).
  • chuoi = "\x4F": \x4F biểu diễn ký tự có mã ASCII ở dạng thập lục phân là 4F (cũng là chữ ‘O’).

Lời kết

Như vậy, chúng ta đã cùng nhau tìm hiểu chi tiết về ký tự thoát trong Python, từ khái niệm, bảng tổng hợp các ký tự thoát, cho đến các ví dụ minh họa cụ thể. Hy vọng rằng, với những kiến thức này, bạn có thể hiểu rõ hơn về cách Python xử lý các ký tự đặc biệt trong chuỗi và ứng dụng chúng một cách hiệu quả trong quá trình lập trình.

Mọi người cũng đọc

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn