Hướng dẫn cách sử dụng ký tự đặc biệt trong python(tiếng anh: escape sequence; tiếng Nhật:エスケープシーケンス). Bạn sẽ học được khái niệm Ký tự đặc biệt (escape sequence) trong python là gì cũng như cách sử dụng ký tự đặc biệt trong python khi xử lý chuỗi sau bài học này.
Tóm Tắt
Ký tự đặc biệt (escape sequence) trong python là gì
Ký tự đặc biệt trong Python hay còn gọi là escape sequence, hoặc là chuỗi thoát trong Python, là các chuỗi ký tự bắt đầu bởi dấu gạch chéo ngược như \n
hay \t
, nhằm biểu diễn các ký tự vốn không thể biểu diễn theo cách thông thường trong Python.
Lấy ví dụ như ký tự xuống dòng tạo bởi phím Enter. Chúng ta đều biết khi nhấn Enter thì sẽ xuống dòng, tuy nhiên chúng ta lại không có ký tự đơn nào để biểu thị hành động tôi muốn xuống dòng bên trong chương trình cả. Do đó, chúng ta sẽ dùng dấu gạch ngược \
kết hợp với ký tự n
để tạo ra ký tự đặc biệt \n
có tác dụng biểu diễn ký tự xuống dòng tạo bởi phím Enter.
Trong python, chúng ta dùng ký hiệu \
kèm với ký tự khác để biểu diễn ký tự đặc biệt. Hãy cùng xem bảng tổng hợp ký tự đặc biệt trong python dưới đây:
số thứ tựký tự đặc biệtÝ nghĩa0\
xuống dòng khi viết chuỗi nhiều dòng1\\
dấu gạch chéo ngược (\
)2\'
dấu nháy đơn (‘)3\"
dấu nháy kép (“)4\a
ký tự chuông BEL trong chuỗi5\b
ký tự backspace BS trong chuỗi6\f
ký tự Form feed FF trong chuỗi7\n
ký tự xuống dòng trong chuỗi8\r
ASCII CF9\t
ký tự TAB10\v
ASCII VT11\000
ASCII ký tự 000 của hệ cơ số 812\xhh
ASCII ký tự xhh của hệ cơ số 1613\N {name}
Ký tự có tên trong cơ sở dữ liệu Unicode14\uxxx
Unicode ký tự xxx của hệ cơ số 1615\Uxxxxxxxx
Unicode ký tự xxxxxx của hệ cơ số 32
Trong đó chúng ta thường hay sử dụng nhiều nhất đó là ký tự đặc biệt của dầu ngoặc đơn \'
, dấu nháy kép \"
,dấu xuống dòng \n
và dấu tab \t
.
Ví dụ điển hình như ký tự xuống dòng \n
chẳng hạn, chúng ta chỉ cần viết ký tự này giữa một chuỗi tại vị trí muốn ngắt dòng như sau:
Xin chào\nViệt Nam
Tại vị trí chứa chuỗi \
, bạn đã ra lệnh cho máy tính xuống dòng ở đó, và cách viết trên sẽ được máy tính hiểu như sau:
Xin chào
Việt Nam
Cách sử dụng ký tự đặc biệt trong python
Để sử dụng ký tự đặc biệt (chuỗi thoát) trong python, chúng ta viết ký tự đặc biệt đó trực tiếp vào vị trí mà cần thêm vào trong chuỗi.
Ví dụ sau đây, chúng ta sẽ thêm ký tự đặc biệt xuống dòng vào chuỗi như sau:
print(
"Chào bạn\nBạn có khoẻ không\nHẹn gặp sau nhé"
)print(
"Đây là dấu tab:\t\t\ttrong câu"
)
Kết quả, ở những vị trí có ký tự đặc biệt sẽ được chuyển thành xuống dòng hoặc tab như sau:
Chào bạn
Bạn có khoẻ không
Hẹn gặp sau nhé
Đây là dấu tab: trong câu
Một ví dụ khác, trong bài khai báo chuỗi trong Python chúng ta đã biết cách sử dụng dấu nháy đơn '
để viết một chuỗi ký tự. Nói cách khác thì chương trình Python khi gặp dấu nháy đơn '
thì sẽ tự động hiểu rằng, chỗ này đã bắt đầu một chuỗi ký tự rồi đấy.
Tuy nhiên, trong trường hợp chúng ta không muốn dùng dấu nháy đơn '
để khai báo chuỗi ký tự, mà sử dụng nó như một ký tự bình thường trong câu thì sao? Ví dụ như chuỗi sau đây chẳng hạn:
Let's learn Python together!
Lúc này nếu để chuỗi này (bao gồm cả dấu nháy đơn) trong cặp dấu nháy đơn để khai báo chuỗi ký tự theo cách thông thường thì lỗi sẽ xảy ra như sau:
print(
'Let'
s learn Python together!')
Python báo lỗi trả về:
File
"Main.py"
, line 1
'Let'
s learn Python together!')
^
SyntaxError: invalid syntax
Để giải quyết lỗi ở trên, chúng ta đã biết khi viết một chuỗi mà các ký tự tạo chuỗi có chứa dấu nháy đơn '
, phải đặt các ký tự này vào giữa dấu nháy kép ""
.
Ngược lại, viết một chuỗi mà các ký tự tạo chuỗi có chứa dấu nháy kép "
, phải đặt các ký tự này vào giữa dấu nháy đơn '
khi viết chuỗi rồi.
Ngoài cách viết ở trên, chúng ta còn có cách viết cực kỳ đơn giản bằng cách dùng ký tự đặc biệt dấu nháy đơn \'
như sau:
print(
'Let\'s learn Python together!'
)
Bạn có thể thấy ký tự đặc biệt \'
được chương trình dịch và in ra màn hình ký tự '
rồi phải không nào?
Sử dụng ký tự đặc biệt để xuống dòng khi viết chuỗi python
Ở bên ngoài một câu lệnh, bạn có thể xuống dòng tùy ý bằng cách ấn phím ENTER
để tạo ra khoảng cách giữa các dòng lệnh và khiến chương trình dễ nhìn hơn.
Thế nhưng, bạn không thể xuống dòng giữa chuỗi và viết chuỗi đó trên nhiều dòng chỉ bằng cách nhấn phím ENTER được. lỗi sẽ xảy ra như ví dụ sau đây:
print(
"Tối nay hẹn em 12h
bên bờ hồ"
)
kết quả , lỗi EOL
xảy ra.
File
"Main.py"
, line 1
"Tối nay hẹn em 12h
^
SyntaxError: EOL while scanning string literal
- Tìm hiểu lý do tại bài Xuống dòng trong python
Để xuống dòng xuống dòng giữa chuỗi và viết chuỗi đó trên nhiều dòng, bạn phải sử dụng ký tự đặc biệt xuống dòng \
giống như ví dụ sau đây:
print(
"Tối nay hẹn em 12h \
bên bờ hồ"
)
Kết quả
Tối nay hẹn em 12h bên bờ hồ
ký tự đặc biệt xuống dòng \
không làm ảnh hưởng tới kết quả xử lý, mà lại giúp chúng ta tùy ý xuống dòng trong một chuỗi để giúp code của chúng ta dễ nhìn và dễ bảo trì hơn sau này.
Tổng kết và thực hành
Trên đây Kiyoshi đã hướng dẫn bạn cách sử dụng ký tự đặc biệt escape sequence trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.