Hướng Dẫn Về Kiểu Chuỗi Trong Lập Trình Python

  • Trang chủ
  • Lập trình Python
  • Kiểu chuỗi (string) trong Python
Quảng cáo Kiểu chuỗi (string) trong Python

Chuỗi (string) là một kiểu dữ liệu phổ biến của các ngôn ngữ lập trình. Hướng dẫn này sẽ giới thiệu chi tiết về kiểu chuỗi ký tự (string) trong lập trình Python.

Chuỗi (string) là kiểu dữ liệu phổ biến hàng đầu trong Python. Hầu như bất kỳ chương trình nào cũng đều cần dùng đến kiểu string. Bài học này sẽ giới thiệu chi tiết về kiểu chuỗi ký tự (string) trong Python. String trong Python có nhiều điểm tương đồng với chuỗi trong các ngôn ngữ tựa C hay C#.

String trong Python

Kiểu string trong Python là chuỗi các ký tự Unicode. Python cho phép viết giá trị chuỗi theo nhiều cách khác nhau:

Giá trị string Ghi chú
‘Hello world’ Sử dụng cặp dấu nháy đơn
“Hello world” Sử dụng cặp dấu nháy kép
”’Hello world”’ Sử dụng cặp ”’ (3 dấu nháy đơn)
“””Hello world””” Sử dụng cặp “”” (3 dấu nháy kép)
‘I want to say “I love you”‘ Có thể dùng dấu nháy kép trong chuỗi nằm trong cặp dấu nháy đơn
“My name’s Donald” Có thể dùng dấu nháy đơn trong chuỗi nằm trong cặp dấu nháy kép
‘My name\’s Donald’ Dùng \’ để biểu diễn dấu ‘ trong chuỗi nằm giữa cặp nháy đơn
“I want to say \”I love you\”” Dùng \” để biểu diễn dấu ” trong chuỗi nằm giữa cặp nháy kép

Ghi chú: Python không có kiểu ký tự như các ngôn ngữ khác. Kiểu ký tự trong Python có thể xem như một chuỗi chỉ chứa 1 ký tự.

Cuỗi ký tự đặt trong cặp dấu nháy đơn có thể chứa dấu nháy kép. Tương tự, nếu chuỗi ký tự đặt trong cặp dấu nháy kép thì có thể chứa cả dấu nháy đơn. Chuỗi ký tự tạo ra bởi cặp dấu nháy đơn hoặc nháy kép bắt buộc phải nằm trên một dòng.

\’ và \” được gọi là các escape character biểu diễn cho ký tự .

Cặp 3 dấu nháy đơn (hoặc cặp 3 dấu nháy kép) cho phép tạo ra chuỗi với nhiều dòng. Ví dụ:

Ví dụ

>>>text = """Strings are amongst the most popular types in Python. We can create them simply by enclosing characters in quotes. Python treats single quotes the same as double quotes. Creating strings is as simple as assigning a value to a variable.""" >>>print(text) >>>line = "Hello world" >>>print(line)

Tương tự như Các kiểu dữ liệu số trong Python, string cũng là kiểu dữ liệu bất biến (immutable). Nghĩa là mọi thao tác cập nhật chuỗi đều dẫn đến tạo chuỗi mới. Điều này cũng tương tự như kiểu string trong C#.

Escape character trong Python string

Nếu bạn đã học C hẳn đã gặp các ký tự như \r, \n, \t. Các ký tự này được gọi là escape character.

Chuỗi trong Python cũng sử dụng các escape character tương tự như trong C.

Escape character là một số ký tự có ý nghĩa đặc biệt nếu xuất hiện trong xâu. Mỗi escape character là một ký tự. Mỗi ký tự này có thể được biểu diễn ở dạng dấu xược quen thuộc (backslash notation) hoặc ở dạng mã hex.

Dưới đây là một số escape character thường gặp:

Escape character Tên gọi
\a 0x07 Bell/Alert
\b 0x08 Backspace
\e 0x1b Escape
\f 0x0c Formfeed
\n 0x0a Newline
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Vertical tab

Đây chỉ là các ký tự thông dụng. Ngoài ra còn một số ký tự nữa ít gặp hơn.

Trong các ký tự trên và \r, \n, \t là thường gặp nhất khi in dữ liệu ra console:

  • \r – đưa con trỏ văn bản console về đầu dòng
  • \t – chèn dấu tab
  • \n – bắt đầu một dòng mới.

Ví dụ

>>> print("Hello\tworld") Hello world >>> print("Hello\nworld") Hello world >>>

Trong cách viết chuỗi, \’ và \” cũng là các escape character biểu diễn cho ký tự .

Nếu bạn muốn Python bỏ qua tất cả các escape character, bạn có thể viết như sau:

Ví dụ

>>> print(r'Hello\nworld') # đặt thêm r vào trước giá trị chuỗi Hello\nworld

Bạn đặt thêm r (hoặc R) vào trước giá trị của chuỗi. Ký tự r (R) khi này sẽ biến chuỗi thành chuỗi thô (raw string). Trong chuỗi thô mọi ký tự đặc biệt như escape character sẽ bị bỏ qua.

Ghi chú: Nếu bạn có xuất phát điểm là C#: trong C# bạn không thể viết chuỗi path = "C:\Windows\System32" do \W và \S không phải là những escape character. C# yêu cầu phải viết \\ để biểu diễn cho \ hoặc đặt @ vào đầu chuỗi. Trong Python tình huống khơi khác một chút. Hãy tự thử nghiệm với lệnh print("C:\\Windows\System32\Drivers") để nắm rõ hơn.

Các phép toán trên kiểu string trong Python

Python cung cấp sẵn một số phép toán trên chuỗi ký tự.

Để dễ minh họa các phép toán này, chúng ta giả sử có hai chuỗi a = ‘Hello’ và b = ‘Python’.

Phép toán Ý nghĩa Ví dụ
+ Phép ghép xâu (concatenation) a + b cho ‘HelloPython’
* Phép lặp xâu (repetition) a*2 cho ‘HelloHello’
[i] Phép cắt (slice), lấy ký tự ở vị trí i a[0] cho ký tự ‘H’
[i1:i2] Phép cắt đoạn (range slice) từ vị trí i1 đến i2; có thể bỏ qua i1 hoặc i2; i1 và i2 âm thì tính từ cuối chuỗi a[1:4] cho ‘ell’, a[1:] cho ‘ello’ (lấy từ ký tự số 1 về cuối), a[-1:] cho ‘o’ (lấy từ ký tự thứ 1 từ cuối đến hết ký tự cuối cùng), a[1:-1] cho ‘ell’ (lấy từ ký tự số 1 đến ký tự gần cuối)
in Kiểm tra thành viên 'lo' in a cho kết quả True (‘Hello’ chứa ‘lo’), 'lol' in a cho kết quả False (‘Hello’ không chứa ‘lol’),
not in Kiểm tra thành viên (phủ định) Giống như trên nhưng kết quả ngược lại
r/R Chuỗi thô Bạn đã gặp ở phần trên
% Định dạng chuỗi Xem phần tiếp theo
== So sánh xâu (bằng) a == b cho kết quả False
!= So sánh xâu (khác) a != b cho kết quả True

Lưu ý các phép so sánh chuỗi sẽ so từng cặp ký tự từ trái qua phải, ký tự hoa khác ký tự thường. Python cũng áp dụng các phép so sánh >, =,

Từ khóa » Trong Python Kiểu Dữ Liệu String Có Tên Là