Ký tự đặc biệt trong python (escape sequence) | Laptrinhcanban.com

HOME › >>

Ký tự đặc biệt trong python (escape sequence)

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.

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.

Ký tự đặc biệt trong Python

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ĩa
0\xuống dòng khi viết chuỗi nhiều dòng
1\\dấu gạch chéo ngược (\)
2\'dấu nháy đơn (‘)
3\"dấu nháy kép (“)
4\aký tự chuông BEL trong chuỗi
5\bký tự backspace BS trong chuỗi
6\fký tự Form feed FF trong chuỗi
7\nký tự xuống dòng trong chuỗi
8\rASCII CF
9\tký tự TAB
10\vASCII VT
11\000ASCII ký tự 000 của hệ cơ số 8
12\xhhASCII ký tự xhh của hệ cơ số 16
13\N {name}Ký tự có tên trong cơ sở dữ liệu Unicode
14\uxxxUnicode ký tự xxx của hệ cơ số 16
15\UxxxxxxxxUnicode 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
print('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!')
#> 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
print("Tối nay hẹn em 12h
^
SyntaxError: EOL while scanning string literal

Để 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.

Lấy ký tự đặc biệt trong chuỗi Python

Chúng ta cũng có thể sử dụng RegEx trong python với hàm re.sub() để lấy ký tự đặc biệt trong chuỗi python.

Các ký tự bình thường ( bao gồm các số và các ký tự Alphabet) trong Python được miêu tả bởi mẫu RegEx như sau:

[a-zA-Z0-9]

Ứng dụng hàm re.sub(), chúng ta có thể xóa các ký tự bình thường trong chuỗi và chỉ để lại các ký tự đặc biệt, và qua đó có thể hoàn thành việc lấy ký tự đặc biệt trong chuỗi python rồi.

Ví dụ cụ thể, chúng ta lấy các ký tự đặc biệt như dấu cách, và các dấu !'? từ trong chuỗi ban đầu như sau:

import re

string = "Hey! What's up bro?"
new_string = re.sub(r"[a-zA-Z0-9]","",string)
print(new_string)
#>> ! ' ?

Tổng kết

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.

URL Link

https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/thao-tac-voi-chuoi-string-trong-python/cach-su-dung-chuoi-thoat-escape-sequence-trong-python/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.