Kiểu dữ liệu chuỗi (String) trong Python là một trong các kiểu phổ biến nhất trong Python. Chuỗi ký tự trong python được bao quanh bởi dấu ngoặc kép đơn hoặc dấu ngoặc kép. Python coi các lệnh trích dẫn đơn và kép là như nhau. Ví dụ: ‘Hello’ tương đương với “Hello”.
Bạn có thể hiển thị một chuỗi trong Python bằng print(). Ví dụ:
Gán chuỗi cho một biến
Việc gán một chuỗi cho một biến được thực hiện với tên biến theo sau là dấu bằng và chuỗi, Ví dụ:
Chuỗi đa dòng
Bạn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng 3 dấu ngoặc kép hoặc 3 dấu nháy đơn:
Ví dụ nhập chuỗi đa dòng với 3 dấu ngoặc kép:
Ví dụ nhập chuỗi đa dòng với 3 dấu nháy đơn:
Chuỗi là một mảng
Các chuỗi trong Python là mảng các byte đại diện cho các ký tự unicode.
Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn giản chỉ là một chuỗi có độ dài bằng 1.
Dấu ngoặc vuông [] có thể được sử dụng để truy cập các phần tử của chuỗi. Ký tự đầu tiên có chỉ số là 0.
Kết quả:
Truy cập các giá trị trong String
Dấu ngoặc vuông [] có thể được sử dụng để truy cập các phần tử của chuỗi. Ký tự đầu tiên có chỉ số là 0.
Ví dụ 1:
Kết quả: trả về một chuỗi con từ vị trí 6 đến 8 của chuỗi đã cho:
Chỉ định chỉ mục bắt đầu và chỉ mục kết thúc, được phân tách bằng dấu hai chấm, để trả về một phần của chuỗi.
Ví dụ 2:
Kết quả:
Truy cập chuỗi bằng chỉ mục âm
Sử dụng các chỉ mục âm để lấy ra chuỗi con bắt đầu từ cuối chuỗi: Ví dụ:
Kết quả: trả về một chuỗi con từ vị trí 3 đến 5 từ từ cuối chuỗi của chuỗi đã cho:
Chiều dài chuỗi trong Python
Sử dụng hàm len() để tính chiều dài chuỗi trong Python, Ví dụ:
Kết quả:
Các hàm cơ bản xử lý String trong Python
Python có một tập hợp các phương thức tích hợp mà bạn có thể sử dụng để xử lý chuỗi (String).
Hàm strip()
Hàm strip() loại bỏ bất kỳ khoảng trắng từ đầu hoặc cuối cùng, ví dụ:
Kết quả:
Hàm lower()
Hàm lower() trả về chuỗi chữ thường, ví dụ:
Kết quả:
Hàm upper()
Hàm upper() trả về chuỗi chữ hoa, ví dụ:
Kết quả:
Hàm replace()
Hàm replace() thay thế một chuỗi bằng một chuỗi khác, ví dụ:
Kết quả:
Hàm split()
Hàm split() tách chuỗi thành các chuỗi con, ví dụ:
Kết quả:
Kiểm tra sự tồn tại của chuỗi trong chuỗi
Để kiểm tra xem một cụm từ hoặc ký tự nào đó có trong một chuỗi hay không, chúng ta có thể sử dụng các từ khóa in hoặc not in.
Ví dụ 1: kiểm tra xem cụm từ “python” có tồn tại trong chuỗi sau không:
Kết quả:
Ví dụ 2: kiểm tra xem cụm từ “python” không tồn tại trong chuỗi sau không:
Kết quả:
Nối chuỗi trong Python
Để nối hoặc kết hợp hai chuỗi với nhau bạn có thể sử dụng toán tử +.
Ví dụ 1: Nối biến a với biến b thành biến c:
Kết quả:
Định dạng chuỗi trong Python
Trong Python, chúng ta không thể kết hợp các chuỗi và số như thế này:
Chúng ta có thể kết hợp chuỗi và số bằng cách sử dụng hàm format()
Ví dụ: Sử dụng hàm format() để chèn số vào chuỗi:
Kết quả:
Bạn có thể nhập bất kỳ số lượng đối số cho hàm format(), chúng sẽ được thay thế dấu {} tương ứng, ví dụ:
Kết quả:
Các ký tự thoát trong Python
Bảng dưới đây liệt kê danh sách các ký tự thoát hoặc không thể in được mà có thể được biểu diễn với dấu .
Ký tự thoátBiểu diễn trong hệ 16Miêu tả a0x07Bell hoặc alert b0x08Backspace cx Control-x C-x Control-x e0x1bEscape f0x0cFormfeed M-C-x Meta-Control-x n0x0aNewline nnn Notation trong hệ cơ số 8, ở đây n là trong dãy từ 0 tới 7 r0x0dCarriage return s0x20Space t0x09Tab v0x0bTab dọc x Ký tự x xnn Notation trong hệ thập lục phân, ở đây n là trong dãy từ 0.9, a.f, hoặc A.F
Chuỗi dạng Unicode trong Python
Các chuỗi thông thường trong Python được lưu trữ nội tại dưới dạng ASCII 8 bit, trong khi các chuỗi Unicode được lưu trữ dưới dạng Unicode 16 bit. Điều này cho phép để có một tập hợp các ký tự đa dạng hơn, bao gồm các ký tự đặc biệt từ hầu hết các ngôn ngữ trên thế giới. Bạn theo dõi ví dụ:
Khi code trên được thực thi sẽ cho kết quả:
Như bạn có thể thấy, các chuỗi dạng Unicode sử dụng tiền tố u, trong khi các chuỗi thô sử dụng tiền tố r.
Các phương thức và hàm đã xây dựng sẵn để xử lý chuỗi trong Python
Python cung cấp các phương thức đa dạng đã được xây dựng sẵn để thao tác với các chuỗi. Bảng dưới đây liệt kê các phương thức này. Bạn truy cập link để thấy ví dụ chi tiết.
STTHàm và mô tả 1Hàm capitalize()Viết hoa chữ cái đầu tiên của chuỗi 2Hàm center(width, fillchar)Trả về một chuỗi mới, trong đó chuỗi ban đầu đã được cho vào trung tâm và hai bên đó là các fillchar sao cho tổng số ký tự của chuỗi mới là width 3Hàm count(str, beg= 0,end=len(string))Đếm xem chuỗi str này xuất hiện bao nhiêu lần trong chuỗi string hoặc chuỗi con của string nếu bạn cung cấp chỉ mục ban đầu start và chỉ mục kết thúc end 4Hàm endswith(suffix, beg=0, end=len(string))Xác định xem nếu chuỗi string hoặc chuỗi con đã cho của string (nếu bạn cung cấp chỉ mục bắt đầu beg và chỉ mục kết thúc end) kết thúc với hậu tố suffix thì trả về true, nếu không thì phương thức này trả về false 5Hàm expandtabs(tabsize=8)Mở rộng các tab trong chuỗi tới số khoảng trống đã cho; mặc định là 8 space cho mỗi tab nếu bạn không cung cấp tabsize 6Hàm find(str, beg=0 end=len(string))Xác định xem chuỗi str có xuất hiện trong chuỗi string hoặc chuỗi con đã cho của string (nếu bạn cung cấp chỉ mục bắt đầu beg và chỉ mục kết thúc end), nếu xuất hiện thì trả về chỉ mục của str, còn không thì trả về -1 7Hàm index(str, beg=0, end=len(string))Tương tự như find(), nhưng tạo ra một ngoại lệ nếu str là không được tìm thấy 8Hàm isalnum()Trả về true nếu chuỗi có ít nhất một ký tự và tất cả ký tự là chữ-số. Nếu không hàm sẽ trả về false 9Hàm isalpha()Trả về true nếu chuỗi có ít nhất 1 ký tự và tất cả ký tự là chữ cái. Nếu không phương thức sẽ trả về false 10Hàm isdigit()Trả về true nếu chuỗi chỉ chứa các chữ số, nếu không là false 11Hàm islower()Trả về true nếu tất cả ký tự trong chuỗi là ở dạng chữ thường, nếu không là false 12Hàm isnumeric()Trả về true nếu một chuỗi dạng Unicode chỉ chứa các ký tự số, nếu không là false 13Hàm isspace()Trả về true nếu chuỗi chỉ chứa các ký tự khoảng trắng whitespace, nếu không là false 14Hàm istitle()Trả về true nếu chuỗi là ở dạng titlecase, nếu không là false 15Hàm isupper()Trả về true nếu tất cả ký tự trong chuỗi là chữ hoa 16Hàm join(seq)Nối chuỗi các biểu diễn chuỗi của các phần tử trong dãy seq thành một chuỗi 17Hàm len(string)Trả về độ dài của chuỗi 18Hàm ljust(width[, fillchar])Trả về một chuỗi mới, trong đó có chuỗi ban đầu được căn chỉnh vào bên trái và bên phải là các fillchar sao cho tổng số ký tự là width 19Hàm lower()Chuyển đối tất cả chữ hoa trong chuỗi sang kiểu chữ thường 20Hàm lstrip()Xóa tất cả các khoảng trống trắng ban đầu (leading) trong chuỗi 21Hàm max(str)Trả về ký tự chữ cái lớn nhất từ chuỗi str đã cho 22Hàm min(str)Trả về ký tự chữ cái nhỏ nhất từ chuỗi str đã cho 23Hàm replace(old, new [, max])Thay thế tất cả sự xuất hiện của old trong chuỗi với new với số lần xuất hiện max (nếu cung cấp) 24Hàm rfind(str, beg=0,end=len(string))Tương tự hàm find(), nhưng trả về chỉ mục cuối cùng 25Hàm rindex( str, beg=0, end=len(string))Giống index(), nhưng trả về chỉ mục cuối cùng nếu tìm thấy 26Hàm rjust(width,[, fillchar])Trả về một chuỗi mới, trong đó có chuỗi ban đầu được căn chỉnh vào bên phải và bên trái là các fillchar sao cho tổng số ký tự là width 27Hàm rstrip()Xóa bỏ tất cả các khoảng trống trắng ở cuối (trailing) của chuỗi 28Hàm split(str=””, num=string.count(str))Chia chuỗi theo delimeter đã cho (là space nếu không được cung cấp) và trả về danh sách các chuỗi con; nếu bạn cung cấp num thì chia chuỗi thành num chuỗi con 29Hàm splitlines( num=string.count(‘n’))Trả về một List gồm tất cả các dòng trong chuỗi, và tùy ý xác định các ngắt dòng (nếu num được cung cấp và là true). 30Hàm startswith(str, beg=0,end=len(string))Xác định xem chuỗi hoặc chuỗi con (nếu bạn cung cấp chỉ mục bắt đầu beg và chỉ mục kết thúc end) có bắt đầu với chuỗi con str không, nếu có trả về true, nếu không là false 31Hàm strip([chars])Thực hiện cả hai phương thức lstrip() và rstrip() trên chuỗi 32Hàm swapcase()Đảo ngược kiểu của tất cả ký tự trong chuỗi 33Hàm title()Trả về một bản sao của chuỗi trong đó tất cả ký tự đầu tiên của tất cả các từ là ở kiểu chữ hoa. 34Hàm upper()Chuyển đổi các chữ thường trong chuỗi thành chữ hoa 35Hàm zfill (width)Trả về một chuỗi mới, trong đó bao gồm chuỗi ban đầu và được đệm thêm với các số 0 vào bên trái sao cho tổng ký tự là width 36Hàm isdecimal()Trả về true nếu một chuỗi dạng Unicode chỉ chứa các ký tự thập phân, nếu không là false