Hướng dẫn mảng chuỗi trong python



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ụ:

print("Hello")
print('Hello')


Nội dung chính

  • Gán chuỗi cho một biến
  • Chuỗi đa dòng
  • Chuỗi là một mảng
  • Truy cập các giá trị trong String
    • Truy cập chuỗi bằng chỉ mục âm
  • Chiều dài chuỗi trong Python
  • Các hàm cơ bản xử lý String trong Python
    • Hàm strip()
    • Hàm lower()
    • Hàm upper()
    • Hàm replace()
    • Hàm split()
  • Kiểm tra sự tồn tại của chuỗi trong chuỗi
  • Nối chuỗi trong Python
  • Định dạng chuỗi trong Python
  • Các ký tự thoát trong Python
  • Chuỗi dạng Unicode trong Python
  • Các phương thức và hàm đã xây dựng sẵn để xử lý chuỗi trong Python

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ụ:

str1 = "Hello World!"
print(str1)



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:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print(str1)

Ví dụ nhập chuỗi đa dòng với 3 dấu nháy đơn:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print(str1)

Lưu ý: các ngắt dòng phải giống nhau (thụt dầu dòng giống nhau). Đó là quy tắc cơ bản trong Python.


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.

str1 = "Hello World!"
print(str1[0])

Kết quả:


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:

str1 = "HELLO"
str1 = "HELLO"
print(str1[0])
print(str1[1])
print(str1[2])
print(str1[3])
print(str1[4])

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:

str1 = "HELLO"
print(str1[:])
print(str1[0:])
print(str1[:5])
print(str1[:3])
print(str1[0:2])
print(str1[1:4])

Kết quả:

HELLO
HELLO
HELLO
HEL
HE
ELL

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ụ:

str1 = "Hello World!"
print(str1[-5:-2])

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ụ:

a = "Hello World!"
print(len(a))

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ụ:

a = " Hello World! "
print(a.strip()) # returns "Hello World!"

Kết quả:

Hàm lower()

Hàm lower() trả về chuỗi chữ thường, ví dụ:

a = "Hello World!"
print(a.lower()) # returns "hello world!"

Kết quả:

Hàm upper()

Hàm upper() trả về chuỗi chữ hoa, ví dụ:

a = "Hello World!"
print(a.upper()) # returns "HELLO WORLD!"

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ụ:

a = "Hello World!"
print(a.replace("l", "t"))

Kết quả:

Hàm split()

Hàm split() tách chuỗi thành các chuỗi con, ví dụ:

a = "Hello, World!"
print(a.split(","))

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:

str1 = "hoc lap trinh python string."
x = "python" in str1
print(x)

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:

str1 = "hoc lap trinh python string."
x = "python" not in str1
print(x)

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:

a = "Hello "
b = "Python "
c = a + b
print(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:

n = 3
txt = "Hello Python " + 3
print(txt)

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:

n = 3
txt = "Hello Python {}"
print(txt.format(n))

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ụ:

txt = "Xin chao, toi la {}, {} tuoi, den tu {}"
print(txt.format("Nam", 22, "Ha Noi"))

Kết quả:

Xin chao, toi la Nam, 22 tuoi, den tu Ha Noi



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ả
\a 0x07 Bell hoặc alert
\b 0x08 Backspace
\cx Control-x
\C-x Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x Meta-Control-x
\n 0x0a Newline
\nnn Notation trong hệ cơ số 8, ở đây n là trong dãy từ 0 tới 7
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Tab 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ả
1 Hàm capitalize()
Viết hoa chữ cái đầu tiên của chuỗi
2 Hà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
3 Hà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
4 Hà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
5 Hà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
6 Hà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
7 Hà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
8 Hà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
9 Hà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
10 Hàm isdigit()
Trả về true nếu chuỗi chỉ chứa các chữ số, nếu không là false
11 Hà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
12 Hà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
13 Hà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
14 Hàm istitle()
Trả về true nếu chuỗi là ở dạng titlecase, nếu không là false
15 Hàm isupper()
Trả về true nếu tất cả ký tự trong chuỗi là chữ hoa
16 Hà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
17 Hàm len(string)
Trả về độ dài của chuỗi
18 Hà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
19 Hàm lower()
Chuyển đối tất cả chữ hoa trong chuỗi sang kiểu chữ thường
20 Hàm lstrip()
Xóa tất cả các khoảng trống trắng ban đầu (leading) trong chuỗi
21 Hàm max(str)
Trả về ký tự chữ cái lớn nhất từ chuỗi str đã cho
22 Hàm min(str)
Trả về ký tự chữ cái nhỏ nhất từ chuỗi str đã cho
23 Hà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)
24 Hà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
25 Hà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
26 Hà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
27 Hàm rstrip()
Xóa bỏ tất cả các khoảng trống trắng ở cuối (trailing) của chuỗi
28 Hà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
29 Hà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).
30 Hà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
31 Hàm strip([chars])
Thực hiện cả hai phương thức lstrip() và rstrip() trên chuỗi
32 Hàm swapcase()
Đảo ngược kiểu của tất cả ký tự trong chuỗi
33 Hà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.
34 Hàm upper()
Chuyển đổi các chữ thường trong chuỗi thành chữ hoa
35 Hà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
36 Hà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